AT_agc045_b [AGC045B] 01 Unbalanced
Description
[problemUrl]: https://atcoder.jp/contests/agc045/tasks/agc045_b
文字列 $ S $ が与えられます. $ S $ の各文字は,`0`,`1`,`?` のいずれかです.
$ S $ に含まれる全ての `?` を `0` か `1` に変えて(`?` ごとに変換後の文字を選択できます),文字列 $ S' $ を作ることを考えます. ここで,$ S' $ のアンバランス度を,次のように定義します.
- $ S' $ のアンバランス度 $ =\ \max\ \{\ S' $ の $ l $ 文字目から $ r $ 文字目までに含まれる `0` の個数と `1` の個数の差の絶対値 $ :\ 1\ \leq\ l\ \leq\ r\ \leq\ |S|\} $
$ S' $ のアンバランス度としてありうる最小の値を求めてください.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ S $
Output Format
$ S' $ のアンバランス度としてありうる最小の値を出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ |S|\ \leq\ 10^6 $
- $ S $ の各文字は `0`,`1`,`?` のいずれかである.
### Sample Explanation 1
$ S'= $`010` とすれば,アンバランス度は $ 1 $ になり,これが最小です.