配点 : 700 点
問題文
長さ N かつ総和 M である非負整数列 A=(A1,A2,…,AN) のうち、以下の条件を満たすものの個数を 998244353 で割ったあまりを求めてください。
- 以下の操作のうちどちらかを選んで行うことを繰り返して、A の全ての要素を 0 にすることが出来る。- 1≤i≤N を満たす整数 i を選び、Ai を K 減らす。
- 1≤i≤N−K+1 を満たす整数 i を選び、Ai,Ai+1,…,Ai+K−1 を 1 ずつ減らす。
- 1≤i≤N を満たす整数 i を選び、Ai を K 減らす。
- 1≤i≤N−K+1 を満たす整数 i を選び、Ai,Ai+1,…,Ai+K−1 を 1 ずつ減らす。
制約
- 1≤K≤N≤2000
- 1≤M≤1018
入力
入力は以下の形式で標準入力から与えられる。
N M K
出力
答えを出力せよ。
3 2 2
5
条件を満たす数列は、以下の 5 個です。
- (1,1,0)
- (0,1,1)
- (2,0,0)
- (0,2,0)
- (0,0,2)
例えば、A=(0,1,1) の場合は以下のように操作をすることで全ての要素を 0 にすることが出来ます。
- 2 個目の操作を行う。i として 2 を選ぶ。A2,A3 を 1 ずつ減らす。A=(0,0,0) となる。
100 998244353 100
0
条件を満たす数列が存在しない場合もあります。
2000 545782618661124208 533
908877889