atcoder#ARC160D. [ARC160D] Mahjong

[ARC160D] Mahjong

配点 : 700700

問題文

長さ NN かつ総和 MM である非負整数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N) のうち、以下の条件を満たすものの個数を 998244353998244353 で割ったあまりを求めてください。

  • 以下の操作のうちどちらかを選んで行うことを繰り返して、AA の全ての要素を 00 にすることが出来る。- 1iN1 \le i \le N を満たす整数 ii を選び、AiA_iKK 減らす。
    • 1iNK+11 \le i \le N-K+1 を満たす整数 ii を選び、Ai,Ai+1,,Ai+K1A_i,A_{i+1},\dots,A_{i+K-1}11 ずつ減らす。
  • 1iN1 \le i \le N を満たす整数 ii を選び、AiA_iKK 減らす。
  • 1iNK+11 \le i \le N-K+1 を満たす整数 ii を選び、Ai,Ai+1,,Ai+K1A_i,A_{i+1},\dots,A_{i+K-1}11 ずつ減らす。

制約

  • 1KN20001 \le K \le N \le 2000
  • 1M10181 \le M \le 10^{18}

入力

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

NN MM KK

出力

答えを出力せよ。

3 2 2
5

条件を満たす数列は、以下の 55 個です。

  • (1,1,0)(1,1,0)
  • (0,1,1)(0,1,1)
  • (2,0,0)(2,0,0)
  • (0,2,0)(0,2,0)
  • (0,0,2)(0,0,2)

例えば、A=(0,1,1)A=(0,1,1) の場合は以下のように操作をすることで全ての要素を 00 にすることが出来ます。

  • 22 個目の操作を行う。ii として 22 を選ぶ。A2,A3A_2,A_311 ずつ減らす。A=(0,0,0)A=(0,0,0) となる。
100 998244353 100
0

条件を満たす数列が存在しない場合もあります。

2000 545782618661124208 533
908877889