AT_KeioPC2025_c Addictive Addition
Description
長さ $ N $ の正整数列 $ A=(A_1,A_2,\dots,A_N) $ が与えられます。ここで、整数列 $ X=(X_1,X_2,\dots,X_l) $ に対して以下のように $ f(X) $ を定義します。
- $ 0 \le i \le N $ について、正整数列 $ C^{(i)} $ を $ (A_1,A_2,\dots,A_i,X_1,X_2,\dots,X_l,A_{i+1},A_{i+2},\dots,A_N,\textcolor{red}{\boldsymbol{i}}) $ と定義する。これら $ N+1 $ 個の数列のうち、辞書順で最も小さいもの(一意に定まることが証明できます)を $ C^{(k)} $ としたとき、 $ f(X) = k $ とする。
$ i = 0,1,\dots,N $ に対して、以下の問題を解いてください。
- 長さが $ 1 $ 以上 $ M $ 以下かつすべての要素が $ 1 $ 以上 $ K $ 以下であるような整数列 $ B $ のうち、 $ f(B) = i $ を満たすものの個数を $ 998244353 $ で割ったあまりを求めよ。
$ T $ 個のテストケースが与えられるので、それぞれについて解いてください。
数列の辞書順とは? 数列 \\(S = (S\_1,S\_2,\\ldots,S\_{|S|})\\) が数列 \\(T = (T\_1,T\_2,\\ldots,T\_{|T|})\\) より**辞書順で小さい**とは、下記の 1. と 2. のどちらかが成り立つことを言います。 ここで、 $ |S|,|T| $ はそれぞれ \\(S, T\\) の長さを表します。
1. \\(|S| < |T|\\) かつ \\((S\_1,S\_2,\\ldots,S\_{|S|}) = (T\_1,T\_2,\\ldots,T\_{|S|})\\)。
2. ある整数 \\(1 \\le i \\le \\min\\{|S|,|T|\\}\\) が存在して、下記の $ 2 $ つがともに成り立つ。
- \\((S\_1,S\_2,\\ldots,S\_{i-1}) = (T\_1,T\_2,\\ldots,T\_{i-1})\\)
- \\(S\_i\\) が \\(T\_i\\) より(数として)小さい。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \mathrm{case}_1 $ $ \vdots $ $ \mathrm{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ M $ $ K $ $ A_1\ A_2\ \dots\ A_N $
Output Format
$ T $ 行出力せよ。 $ t $ 行目には $ \mathrm{case}_t $ について、 $ i = 0,1,\dots,N $ に対する答えをこの順で空白区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目のテストケースについて、長さが $ 1 $ かつ要素が $ 1 $ 以上 $ 3 $ 以下な正整数列 $ B $ すべてについて $ C^{(i)} $ を列挙すると以下のようになります。
- $ B=(1) $ のとき、 $ C^{(0)}=(1,2,3,0),C^{(1)}=(2,1,3,1),C^{(2)}=(2,3,1,2) $ となり、 $ f(B) = 0 $ である。
- $ B=(2) $ のとき、 $ C^{(0)}=(2,2,3,0),C^{(1)}=(2,2,3,1),C^{(2)}=(2,3,2,2) $ となり、 $ f(B) = 0 $ である。
- $ B=(3) $ のとき、 $ C^{(0)}=(3,2,3,0),C^{(1)}=(2,3,3,1),C^{(2)}=(2,3,3,2) $ となり、 $ f(B) = 1 $ である。
よって、 $ i=0,1,2 $ に対する答えはそれぞれ $ 2,1,0 $ となります。
### Constraints
- $ 1 \le T \le 5 \times 10^5 $
- $ 1 \le N \le 5 \times 10^5 $
- $ 1 \le M \le 10^9 $
- $ 1 \le K \le 10^9 $
- $ 1 \le A_i \le K $
- すべてのテストケースに対する $ N $ の総和は $ 5 \times 10^5 $ 以下
- 入力はすべて整数