AT_ttpc2024_1_l Long Sequence Inversion 2
Description
この問題で「長さ $ K $ の順列」と言った際は「 $ (0, 1, \dots, K - 1) $ の順列」を指すものとします。また、数列 $ X $ の $ k $ 番目の要素(最初の要素を $ 0 $ 番目とする)を $ X[k] $ と表すこととします。
長さ $ L $ の順列 $ P $ と、 $ L $ 個の長さ $ B $ の順列 $ V_{0}, V_{1}, \dots, V_{L - 1} $ が与えられます。
長さ $ B^L $ の数列 $ A $ を以下のように定義します。
> 各 $ 0 である。
数列 $ A $ の転倒数を $ 998244353 $ で割ったあまりを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ L $ $ B $ $ P[0] $ $ P[1] $ $ \cdots $ $ P[L - 1] $ $ V_{0}[0] $ $ V_{0}[1] $ $ \cdots $ $ V_{0}[B - 1] $ $ \vdots $ $ V_{L - 1}[0] $ $ V_{L - 1}[1] $ $ \cdots $ $ V_{L - 1}[B - 1] $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
例えば $ n = 5 $ のとき、 $ N = (1, 0, 1) $ であるので、 $ A[5] = V_{0}[1] \cdot 2^{P[0]} + V_{1}[0] \cdot 2^{P[1]} + V_{2}[1] \cdot 2^{P[2]}=3 $ です。
同様にして計算すると、 $ A = (5, 1, 4, 0, 7, 3, 6, 2) $ となります。 $ A $ の転倒数は $ 14 $ であるので、 $ 14 $ を出力します。
### Sample Explanation 2
$ A = (9, 1, 13, 5, 10, 2, 14, 6, 11, 3, 15, 7, 8, 0, 12, 4) $ です。 $ A $ の転倒数は $ 60 $ であるので、 $ 60 $ を出力します。
### Sample Explanation 3
$ 998244353 $ で割ったあまりを求めてください。
### Constraints
- 入力はすべて整数
- $ 1 \leq L $
- $ 2 \leq B $
- $ L \times (B + 1) \leq 5 \times 10^{5} $
- $ P $ は長さ $ L $ の順列である
- 各 $ 0 \leq i < L $ について、 $ V_{i} $ は長さ $ B $ の順列である