atcoder#ABC221E. [ABC221E] LEQ

[ABC221E] LEQ

配点 : 500500

問題文

長さ NN の整数列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N) が与えられます。

AA の連続するとは限らない、長さが 22 以上である部分列 A=(A1,A2,,Ak)A'=(A'_1,A'_2,\ldots,A'_k) のうち以下の条件を満たすものの個数を求めてください。

  • A1AkA'_1 \leq A'_k

なお、この値は非常に大きくなることがあるため、998244353998244353 で割ったあまりを出力してください。

ただし、22 つの部分列は、列として同じであっても、取り出す添字が異なる場合は区別されます。

制約

  • 2N3×1052 \leq N \leq 3 \times 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 入力はすべて整数

入力

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

NN

A1A_1 A2A_2 \ldots ANA_N

出力

AA の連続するとは限らない、長さが 22 以上である部分列のうち問題文中の条件を満たすものの個数を、998244353998244353 で割ったあまりを出力せよ。

3
1 2 1
3

A=(1,2,1)A=(1,2,1) の連続するとは限らない、長さが 22 以上である部分列は (1,2)(1,2), (1,1)(1,1), (2,1)(2,1), (1,2,1)(1,2,1)44 通りあります。

そのうち問題文中の条件を満たすものは、(1,2)(1,2), (1,1)(1,1), (1,2,1)(1,2,1)33 通りです。

3
1 2 2
4

列として同じであっても、取り出す添字が異なる場合 22 つの部分列は区別されることに注意してください。

この入出力例において、問題文中の条件を満たすような部分列は (1,2)(1,2), (1,2)(1,2), (2,2)(2,2), (1,2,2)(1,2,2)44 通りです。

3
3 2 1
0

問題文中の条件を満たすような部分列が存在しない場合もあります。

10
198495780 28463047 859606611 212983738 946249513 789612890 782044670 700201033 367981604 302538501
830