atcoder#AGC046C. [AGC046C] Shift

[AGC046C] Shift

配点 : 800800

問題文

01 のみからなる文字列 SS が与えられます。SS に以下の操作を 00 回以上 KK 回以下繰り返してできる可能性のある文字列の個数を 998244353998244353 で割った余りを求めてください。

  • 整数 1i<jS1\leq i < j\leq |S| の組であって、SSii 文字目が 0 であり jj 文字目が 1 であるものを選ぶ。SSjj 文字目を取り除き、ii 文字目の直前の位置に挿入する。

制約

  • 1S3001 \leq |S| \leq 300
  • 0K1090 \leq K \leq 10^9
  • SS0, 1 のみからなる

入力

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

SS KK

出力

SS に操作を 00 回以上 KK 回以下繰り返してできる可能性のある文字列の個数を 998244353998244353 で割った余りを出力せよ。

0101 1
4

0101, 0110, 1001, 101044 通りの文字列ができる可能性があります。

01100110 2
14
1101010010101101110111100011011111011000111101110101010010101010101 20
113434815