O - Equidistant Binary String
Editorial
Time Limit: 6 sec / Memory Limit: 1024 MB
配点 : 点
問題文
を 文字の 0
と 文字の 1
からなる長さ の文字列全体の集合とします。
に対して、 の距離 を「隣り合った 文字を入れ替える操作によって文字列 を文字列 に並び替えるのに必要な最小の操作回数」と定義します。
また、 に対して、 を次で定めます。
- となる文字列 が存在するとき、そのような文字列の中で辞書順最小のものを返す。そのような文字列が存在しないときは を返す。
正整数 と文字列 が与えられます。 となるような文字列の組 はいくつありますか? で割った余りを求めてください。
制約
- は整数
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを で割った余りを出力せよ。
入力例 1Copy
Copy
2 2 0101
出力例 1Copy
Copy
4
0011
0110
0011
1001
0110
0011
1001
, 0011
が条件を満たします。
例えば、 0011
0110
について、 を満たす は 0101
と 1001
がありますが、このうち辞書順で小さいものは 0101
であるため、 0101
です。
入力例 2Copy
Copy
4 1 00100
出力例 2Copy
Copy
4
00001
10000
00010
01000
01000
00010
10000
, 00001
が条件を満たします。
入力例 3Copy
Copy
3 3 111000
出力例 3Copy
Copy
0
入力例 4Copy
Copy
6 4 0001111000
出力例 4Copy
Copy
1254