AT_utpc2020_e Sort Segments
Description
[problemUrl]: https://atcoder.jp/contests/utpc2020/tasks/utpc2020_e
Enjapma くんは、$ (1,\ 2,\ \ldots,\ N) $ の順列 $ P\ =\ (P_1,\ P_2,\ \ldots,\ P_N) $ を持っています。
Enjapma くんは、以下の操作を**ちょうど $ 1 $ 回**だけ行います。
- 整数 $ k $ $ (\geq\ 0) $ と、$ 1\ \leq\ l_1\ \lt\ r_1\ \lt\ l_2\ \lt\ r_2\ \lt\ \cdots\ \lt\ l_k\ \lt\ r_k\ \leq\ N $ を満たす整数列 $ (l_1,\ r_1,\ l_2,\ r_2,\ \ldots\ ,\ l_k,\ r_k) $ を選んだ後、各 $ i $ $ (1\ \leq\ i\ \leq\ k) $ に対して、$ P_{l_i},\ P_{l_{i}+1},\ \ldots,\ P_{r_i} $ を昇順に並び替える。
操作後の $ P $ としてありうる順列の個数を、$ 998244353 $ で割った余りを求めてください。
Input Format
入力は以下の形式で与えられる。
> $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $
Output Format
答えを $ 1 $ 行に出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数である。
- $ 1\ \leq\ N\ \leq\ 2\times\ 10^5 $
- $ 1\ \leq\ P_i\ \leq\ N $
- $ P_1,\ P_2,\ \ldots,\ P_N $ は全て異なる。
### 部分点
- $ 1\ \leq\ N\ \leq\ 3000 $ を満たすデータセットに正解した場合は $ 50 $ 点が与えられる。
### Sample Explanation 1
\- $ k\ =\ 0 $ とすると、$ P\ =\ (3,\ 2,\ 4,\ 1) $ になります。 - $ k\ =\ 1 $ として、$ (l_1,\ r_1)\ =\ (1,\ 2) $ を選択すると、$ P\ =\ (2,\ 3,\ 4,\ 1) $ になります。 - $ k\ =\ 1 $ として、$ (l_1,\ r_1)\ =\ (1,\ 4) $ を選択すると、$ P\ =\ (1,\ 2,\ 3,\ 4) $ になります。 - $ k\ =\ 1 $ として、$ (l_1,\ r_1)\ =\ (2,\ 4) $ を選択すると、$ P\ =\ (3,\ 1,\ 2,\ 4) $ になります。 - $ k\ =\ 1 $ として、$ (l_1,\ r_1)\ =\ (3,\ 4) $ を選択すると、$ P\ =\ (3,\ 2,\ 1,\ 4) $ になります。 - $ k\ =\ 2 $ として、$ (l_1,\ r_1,l_2,\ r_2)\ =\ (1,\ 2,\ 3,\ 4) $ を選択すると、$ P\ =\ (2,\ 3,\ 1,\ 4) $ になります。 他にも操作の方法はありますが、以上の $ 6 $ 通りのいずれかと重複する結果になります。