AT_acl1_e Shuffle Window
Description
[problemUrl]: https://atcoder.jp/contests/acl1/tasks/acl1_e
$ (1,\ 2,\ ...,\ N) $ の順列 $ p_1,\ p_2,\ \dots,\ p_N $ と整数 $ K $ が与えられます。 maroonくんは $ i\ =\ 1,\ 2,\ \dots,\ N\ -\ K\ +\ 1 $ について、次の操作を順番に行います。
- $ p_i,\ p_{i\ +\ 1},\ \dots,\ p_{i\ +\ K\ -\ 1} $ を一様ランダムにシャッフルする。
すべての操作の後の数列の転倒数の期待値を求め、$ \bmod\ 998244353 $ で出力してください。
より正確には、期待値が有理数、つまりある既約分数 $ \frac{P}{Q} $ で表せること、更に $ R\ \times\ Q\ \equiv\ P\ \pmod{998244353},\ 0\ \leq\ R\
Input Format
> $ N $ $ K $ $ p_1 $ $ p_2 $ ... $ p_N $
Output Format
期待値を $ \bmod\ 998244353 $ で出力せよ。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 200,000 $
- $ 2\ \leq\ K\ \leq\ N $
- $ (p_1,\ p_2,\ \dots,\ p_N) $ は $ (1,\ 2,\ \dots,\ N) $ の並び替え
- 入力される数は全て整数である.
### Sample Explanation 1
$ (1,\ 2,\ 3) $, $ (2,\ 1,\ 3) $, $ (1,\ 3,\ 2) $, $ (2,\ 3,\ 1) $ が、それぞれ $ \frac{1}{4} $ の確率で最終的な数列になります。 これらの転倒数は $ 0,\ 1,\ 1,\ 2 $ なので、期待値は $ 1 $ です。