100 atcoder#AGC058B. [AGC058B] Adjacent Chmax

[AGC058B] Adjacent Chmax

配点 : 700700

問題文

(1,2,,N)(1,2,\cdots,N) の順列 P=(P1,P2,,PN)P=(P_1,P_2,\cdots,P_N) が与えられます.

あなたは,以下の操作を 00 回以上行うことができます.

  • 整数 ii (1iN11 \leq i \leq N-1) を選ぶ. v=max(Pi,Pi+1)v=\max(P_i,P_{i+1}) として,PiP_iPi+1P_{i+1} の値を vv で置き換える.

操作後の PP としてあり得る数列が何通りあるかを 998244353998244353 で割った余りを求めてください.

制約

  • 2N50002 \leq N \leq 5000
  • (P1,P2,,PN)(P_1,P_2,\cdots,P_N)(1,2,,N)(1,2,\cdots,N) の順列
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN

P1P_1 P2P_2 \cdots PNP_N

出力

答えを出力せよ.

3
1 3 2
4

操作後の PP としてありうる数列は (1,3,2),(3,3,2),(1,3,3),(3,3,3)(1,3,2),(3,3,2),(1,3,3),(3,3,3)44 通りです.

4
2 1 3 4
11
10
4 9 6 3 8 10 1 2 7 5
855