atcoder#ARC059D. [ARC059F] バイナリハック
[ARC059F] バイナリハック
配点 : 点
問題文
しぐはキーボードを製作しました。シンプルさを極限まで追求したこのキーボードには、0
キー、1
キー、バックスペースキーの つしかキーがありません。
手始めに、しぐはこのキーボードで簡単なテキストエディタを操作してみることにしました。このエディタには常に一つの文字列が表示されます(文字列が空のこともあります)。エディタを起動した直後では、文字列は空です。キーボードの各キーを押すと、文字列が次のように変化します。
0
キー: 文字列の右端に文字0
が挿入される。1
キー: 文字列の右端に文字1
が挿入される。- バックスペースキー: 文字列が空なら、何も起こらない。そうでなければ、文字列の右端の 文字が削除される。
しぐはエディタを起動し、これらのキーを合計で 回押しました。その結果、いまエディタに文字列 が表示されています。このようなキーの押し方の個数を で割った余りを求めてください。
制約
- は文字
0
,1
のみからなる。
部分点
- を満たすデータセットに正解すると、 点が与えられる。
入力
入力は以下の形式で標準入力から与えられる。
出力
最終的にエディタに文字列 が表示されるような 回のキーの押し方の個数を で割った余りを出力せよ。
3
0
5
バックスペースキーを B
と表記すると、次の 通りの押し方で最終的に表示される文字列が 0
となります: 00B
, 01B
, 0B0
, 1B0
, BB0
。最後の押し方では、バックスペースキーを押すときに何も起こりません。
300
1100100
519054663
5000
01000001011101000100001101101111011001000110010101110010000
500886057