atcoder#JSC2019QUALB. Kleene Inversion
Kleene Inversion
配点 : 点
問題文
長さ の整数列 $A \sim = \sim A_0, \sim A_1, \sim ..., \sim A_{N - 1}$ があります。
を 回繰り返した長さ の整数列を とします。たとえば 、 のとき、 $B \sim = \sim 1, \sim 3, \sim 2, \sim 1, \sim 3, \sim 2$ です。
の転倒数を で割った余りを求めてください。
ここで の転倒数は、整数の順序対 $(i, \sim j) \sim (0 \leq i < j \leq K \times N - 1)$ であって を満たすものの個数として定義されます。
制約
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
の転倒数を で割った余りを出力せよ。
2 2
2 1
3
このケースでは です。
であり、 の転倒数は です。
3 5
1 1 1
0
は同じ数を複数含むこともあります。
10 998244353
10 9 8 7 5 6 3 4 2 1
185297239
で割った余りを出力することに注意してください。