AT_arc212_e [ARC212E] Drop Min
Description
$ (1,2,\ldots,N) $ の順列 $ P $ と、空の配列 $ A $ があります。 $ P $ に対して以下の操作を $ N-1 $ 回行います。
- 隣接する $ 2 $ 要素を選ぶ。選んだうち小さい方の要素を $ P $ から削除し、削除した要素の前後を結合する。削除した要素を $ A $ の末尾に追加する。
最終的にできる長さ $ N-1 $ の数列 $ A $ としてあり得るものの数を $ 998244353 $ で割ったあまりを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
最終的な $ A $ としては $ (1,2,3) $ の順列 $ 6 $ 通りの全てがあり得ます。
例えば、 $ A=(2,1,3) $ とする操作手順は以下の通りです。
- $ 2,3 $ を選ぶ。 $ 2 $ が削除され、 $ P=(1,3,4), A=(2) $ となる。
- $ 1,3 $ を選ぶ。 $ 1 $ が削除され、 $ P=(3,4), A=(2,1) $ となる。
- $ 3,4 $ を選ぶ。 $ 3 $ が削除され、 $ P=(4), A=(2,1,3) $ となる。
### Constraints
- $ 2 \le N \le 2\times 10^5 $
- $ 1 \le P_i \le N $
- $ P $ は $ (1,2,\ldots,N) $ の順列
- 入力される値は全て整数