atcoder#ARC145F. [ARC145F] Modulo Sum of Increasing Sequences

[ARC145F] Modulo Sum of Increasing Sequences

配点 : 12001200

問題文

00 以上 MM 以下の整数からなる長さ NN の広義単調増加列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N) のうち、以下を満たすものの個数を 998244353998244353 で割ったあまりを各 K=0,1,,MOD1K=0,1,\ldots,\mathrm{MOD}-1 に対して求めてください。

  • AA の要素の総和を MOD\mathrm{MOD} で割ったあまりが KK に等しい。
広義単調増加列とは $$B$$$$B$$$$|B|$$$$i$$$$1 \le i \le |B| - 1$$$$B_i \leq B_{i+1}$$$$B $$

制約

  • 1N,M1061 \leq N ,M\leq 10^6
  • 1MOD5001\leq \mathrm{MOD}\leq 500
  • 入力は全て整数

入力

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

NN MM MOD\mathrm{MOD}

出力

K=0,1,,MOD1K=0,1,\ldots,\mathrm{MOD}-1 に対して、条件を満たす数列の個数を 998244353998244353 で割ったあまりを出力せよ。

2 2 4
2 1 2 1

00 以上 22 以下の整数からなる長さ 22 の広義単調増加列は (0,0),(0,1),(0,2),(1,1),(1,2),(2,2)(0, 0), (0, 1),(0,2), (1,1),(1,2),(2,2)66 通りです。

  • 総和を 44 で割ったあまりが 00 のもの:(0,0),(2,2)(0,0),(2,2)22 通り
  • 総和を 44 で割ったあまりが 11 のもの:(0,1)(0,1)11 通り
  • 総和を 44 で割ったあまりが 22 のもの:(0,2),(1,1)(0,2),(1,1)22 通り
  • 総和を 44 で割ったあまりが 33 のもの:(1,2)(1,2)11 通り

です。

3 45 3
5776 5760 5760
1000000 1000000 6
340418986 783857865 191848859 783857865 340418986 635287738

998244353998244353 で割ったあまりを答えてください。