atcoder#NOMURA2020E. Binary Programming

Binary Programming

配点 : 900900

問題文

高橋くんは、空文字列 SS と、00 で初期化された変数 xx を持っています。

また 0 および 1 のみからなる文字列 TT があります。

高橋くんはこれから、以下の 22 ステップからなる操作を T|T| 回繰り返します。

  • SS の好きな位置に 0 または 1 を挿入する。
  • 次に、SS の左から奇数番目に書かれた数字の総和を xx に加算する。例えば現在 SS01101 であるなら、SS の左から奇数番目に書かれた数字は左から 0, 1, 1 なので、22xx に加算する。

最終的に SSTT に一致するような操作列における、最終的な xx の値の最大値を出力してください。

制約

  • 1T2×1051 \leq |T| \leq 2 \times 10^5
  • TT0 および 1 のみからなる。

入力

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

TT

出力

最終的に SSTT に一致するような操作列における、最終的な xx の値の最大値を出力せよ。

1101
5

例えば以下のような操作列が、最終的な xx の値を 55 に最大化します。

  • SS の先頭に 1 を挿入する。SS1 になり、xx11 を加算する。
  • SS11 文字目の直後に 0 を挿入する。SS10 になり、xx11 を加算する。
  • SS22 文字目の直後に 1 を挿入する。SS101 になり、xx22 を加算する。
  • SS の先頭に 1 を挿入する。SS1101 になり、xx11 を加算する。
0111101101
26