atcoder#ARC139D. [ARC139D] Priority Queue 2

[ARC139D] Priority Queue 2

配点 : 700700

問題文

要素数が NN の整数の多重集合 A={A1,A2,...,AN}A=\lbrace A_1,A_2,...,A_N \rbrace が与えられます。AA の要素は全て 11 以上 MM 以下であることが保証されています。

以下の操作を KK 回繰り返します。

  • 11 以上 MM 以下の整数を選び、AA に追加する。その後、AA の中で XX 番目に小さい値を 11 個削除する。

AA の中で XX 番目に小さい値とは、AA の要素を単調非減少になるように一列に並べたとき、先頭から XX 番目にくる値のことです。

11 以上 MM 以下の値を KK 回選ぶ方法は MKM^K 通りありますが、その全てに対して操作終了後の AA の要素の総和を求めたとします。これらの MKM^K 個の値の総和を 998244353998244353 で割ったあまりを求めてください。

制約

  • 1N,M,K20001 \le N,M,K \le 2000
  • 1XN+11 \le X \le N+1
  • 1AiM1 \le A_i \le M
  • 入力は全て整数である。

入力

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

NN MM KK XX

A1A_1 A2A_2 \dots ANA_N

出力

答えを出力してください。

2 4 2 1
1 3
99

初め A={1,3}A=\{1,3\} です。操作の例としては以下のようなものが考えられます。

  • AA44 を追加する。A={1,3,4}A=\{1,3,4\} となる。AA11 番目に小さい値を削除する。A={3,4}A=\{3,4\} となる。
  • AA33 を追加する。A={3,3,4}A=\{3,3,4\} となる。AA11 番目に小さい値を削除する。A={3,4}A=\{3,4\} となる。

この場合、操作後の AA の要素の総和は 3+4=73+4=7 となります。

5 9 6 3
3 7 1 9 9
15411789