atcoder#ARC088B. [ABC083D] Wide Flip

[ABC083D] Wide Flip

配点 : 500500

問題文

01 からなる文字列 SS が与えられます。 以下の操作を好きな回数繰り返すことで SS の要素をすべて 0 にできるような、S|S| 以下の最大の整数 KK を求めてください。

  • SS の長さ KK 以上の連続する区間 [l,r][l,r] を選ぶ(すなわち、rl+1Kr-l+1\geq K が満たされる必要がある)。lirl\leq i\leq r なるすべての整数 ii に対し、SiS_i0 なら SiS_i1 に、SiS_i1 なら SiS_i0 に置き換える。

制約

  • 1S1051\leq |S|\leq 10^5
  • Si(1iN)S_i(1\leq i\leq N)0 または 1 である

入力

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

SS

出力

操作を好きな回数繰り返すことで SS の要素をすべて 0 にできるような 最大の (21:08 JST 修正) 整数 KK を出力せよ。

010
2

以下の操作で、SS の要素をすべて 0 にできます。

  • 長さ 33 の区間 [1,3][1,3] に操作を行う。SS101 になる。
  • 長さ 22 の区間 [1,2][1,2] に操作を行う。SS011 になる。
  • 長さ 22 の区間 [2,3][2,3] に操作を行う。SS000 になる。
100000000
8
00001111
4