atcoder#AGC045B. [AGC045B] 01 Unbalanced

[AGC045B] 01 Unbalanced

配点 : 800800

問題文

文字列 SS が与えられます. SS の各文字は,0,1,? のいずれかです.

SS に含まれる全ての ?01 に変えて(? ごとに変換後の文字を選択できます),文字列 SS' を作ることを考えます. ここで,SS' のアンバランス度を,次のように定義します.

  • SS' のアンバランス度 =max{S= \max \{ S'll 文字目から rr 文字目までに含まれる 0 の個数と 1 の個数の差の絶対値 : 1lrS}:\ 1 \leq l \leq r \leq |S|\}

SS' のアンバランス度としてありうる最小の値を求めてください.

制約

  • 1S1061 \leq |S| \leq 10^6
  • SS の各文字は 0,1,? のいずれかである.

入力

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

SS

出力

SS' のアンバランス度としてありうる最小の値を出力せよ.

0??
1

S=S'=010 とすれば,アンバランス度は 11 になり,これが最小です.

0??0
2
??00????0??0????0?0??00??1???11?1?1???1?11?111???1
4