AT_abc234_g [ABC234G] Divide a Sequence
Description
[problemUrl]: https://atcoder.jp/contests/abc234/tasks/abc234_g
長さ $ N $ の数列 $ A $ が与えられます。
$ A $ を空でない、**連続した**部分列 $ B_1,B_2,\ldots,B_k $ に切り分ける方法は $ 2^{N-1} $ 通りありますが、そのすべてについて以下の値を求め、総和を $ 998244353 $ で割ったあまりを出力してください。
- $ \prod_{i=1}^{k}\ (\max(B_i)-\min(B_i)) $
ここである数列 $ B_i=(B_{i,1},B_{i,2},\ldots,B_{i,j}) $ について、$ \max(B_i) $ を $ B_i $ に含まれる要素の最大値、$ \min(B_i) $ を $ B_i $ に含まれる要素の最小値と定義します。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 3\ \times\ 10^5 $
- $ 1\ \leq\ A_i\ \leq\ 10^9 $
- 入力はすべて整数
### Sample Explanation 1
$ A=(1,2,3) $ を空でない連続した部分列に切り分ける方法は以下の $ 4 $ 通りです。 - $ (1) $ と $ (2) $ と $ (3) $ - $ (1) $ と $ (2,3) $ - $ (1,2) $ と $ (3) $ - $ (1,2,3) $ それぞれにおける $ \prod_{i=1}^{k}\ (\max(B_i)-\min(B_i)) $ は順に $ 0 $, $ 0 $, $ 0 $, $ 2 $ であるため、その総和である $ 2 $ を出力します。
### Sample Explanation 3
$ 998244353 $ で割ったあまりを出力することに注意してください。