AT_nomura2020_e Binary Programming
Description
[problemUrl]: https://atcoder.jp/contests/nomura2020/tasks/nomura2020_e
高橋くんは、空文字列 $ S $ と、$ 0 $ で初期化された変数 $ x $ を持っています。
また `0` および `1` のみからなる文字列 $ T $ があります。
高橋くんはこれから、以下の $ 2 $ ステップからなる操作を $ |T| $ 回繰り返します。
- $ S $ の好きな位置に `0` または `1` を挿入する。
- 次に、$ S $ の左から奇数番目に書かれた数字の総和を $ x $ に加算する。例えば現在 $ S $ が `01101` であるなら、$ S $ の左から奇数番目に書かれた数字は左から `0`, `1`, `1` なので、$ 2 $ を $ x $ に加算する。
最終的に $ S $ が $ T $ に一致するような操作列における、最終的な $ x $ の値の最大値を出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $
Output Format
最終的に $ S $ が $ T $ に一致するような操作列における、最終的な $ x $ の値の最大値を出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ |T|\ \leq\ 2\ \times\ 10^5 $
- $ T $ は `0` および `1` のみからなる。
### Sample Explanation 1
例えば以下のような操作列が、最終的な $ x $ の値を $ 5 $ に最大化します。 - $ S $ の先頭に `1` を挿入する。$ S $ は `1` になり、$ x $ に $ 1 $ を加算する。 - $ S $ の $ 1 $ 文字目の直後に `0` を挿入する。$ S $ は `10` になり、$ x $ に $ 1 $ を加算する。 - $ S $ の $ 2 $ 文字目の直後に `1` を挿入する。$ S $ は `101` になり、$ x $ に $ 2 $ を加算する。 - $ S $ の先頭に `1` を挿入する。$ S $ は `1101` になり、$ x $ に $ 1 $ を加算する。