atcoder#ABC267B. [ABC267B] Split?

[ABC267B] Split?

配点 : 200200

問題文

ボウリングのピンは 11 から 1010 の番号が付けられており、上から見ると下図のように配置されます。

0

この図の二つの点線に挟まれた部分をと呼ぶことにします。 例えば、ピン 1,51, 5 とピン 3,93, 9 はそれぞれ同じ列に存在します。

いくつかのピンが倒れた状態のうち、特殊なものはスプリットと呼ばれます。 ピンの配置がスプリットであるとは、以下の条件が全て成り立つことを言います。

  • ピン 11 が倒れている。
  • ある二つの異なる列であって、次の条件を満たすものが存在する。- それぞれの列には、立っているピンが 11 本以上存在する。
    • それらの列の間に、ピンが全て倒れている列が存在する。
  • それぞれの列には、立っているピンが 11 本以上存在する。
  • それらの列の間に、ピンが全て倒れている列が存在する。

具体例は入出力例を参考にしてください。

さて、あるピンの配置が長さ 1010 の文字列 SS として与えられます。 i=1,,10i = 1, \dots, 10 について、ピン ii が倒れているとき SSii 文字目は 0 であり、ピン ii が立っているとき SSii 文字目は 1 です。 SS で表されるピンの配置がスプリットかどうか判定してください。

制約

  • SS01 からなる長さ 1010 の文字列

入力

入力は以下の形式で標準入力から与えられる。

SS

出力

SS で表されるピンの配置がスプリットなら Yes を、そうでないなら No を出力せよ。

0101110101
Yes

倒れているピンを灰色で、立っているピンを白色で示すと下図のようになります。

ex0

ピン 55 が立っている列とピン 66 が立っている列の間にはピン 3,93, 9 が置かれている列が存在しますが、ピン 3,93, 9 はいずれも倒れているので、この配置はスプリットです。

0100101001
Yes

ex1

0000100110
No

ex2

この配置はスプリットではありません。

1101110101
No

ex3

ピン 11 が倒れていないので、スプリットではありません。