No.1654 Binary Compression
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 24
作問者 : chocorusk / テスター : ygussany
タグ : / 解いたユーザー数 24
作問者 : chocorusk / テスター : ygussany
問題文最終更新日: 2021-08-09 09:32:41
問題文
ラスク君は0
と1
のみからなる文字列 $S$ を持っています。ラスク君は次の操作を何回でも行うことができます。
- $S$ の隣り合う $2$ 文字を選び、大きくない方の数字を削除する。
入力
$S$
- $1\leq |S|\leq 3\times 10^6$
- $S$ の各文字は
0
または1
である。
出力
操作後の $S$ としてありうるものが何通りあるかを $924844033$ で割った余りを出力してください。
サンプル
サンプル1
入力
00101
出力
9
操作後の $S$ としてありうるものは、1
, 01
, 11
, 001
, 011
, 101
, 0011
, 0101
, 00101
の $9$ 通りです。
例えば、01
は次のように操作を行うと得られます。
- $S$ の $1$ 文字目と $2$ 文字目を選び、$1$ 文字目を削除する。$S$ は
0101
となる。 - $S$ の $2$ 文字目と $3$ 文字目を選び、$3$ 文字目を削除する。$S$ は
011
となる。 - $S$ の $2$ 文字目と $3$ 文字目を選び、$2$ 文字目を削除する。$S$ は
01
となる。
サンプル2
入力
1111
出力
4
サンプル3
入力
1001001001001001001001001001001001001001001001001001001001001
出力
605956436
$924844033$ で割った余りを出力してください。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。