402007 - 子数组最小值之和

一个长度为 n 的数组 a,定义 f(l, r) = min{a[l], a[l + 1], …, a[r]},求所有子数组的 f 值之和。例如有数组 a = {2, 1, 3},有 f([2]) = 2,f([2, 1]) = 1,f([2, 1, 3]) = 1,f([1]) = 1,f([1, 3]) = 1,f([3]) = 3,总和为 2 + 1 + 1 + 1 + 1 + 3 = 9。

输入

第一行包含一个整数 n 代表数组长度(1 ≤ n ≤ 10^5); 第二行包含 n 个整数表示数组 a(0 ≤ ai ≤ 10^5)。

输出

输出一行答案对 998244353 取模后的结果。

样例

输入

3
2 1 3

输出

9

输入

4
3 1 2 4

输出

17

输入

3
1 1 1

输出

6
Time Limit 1 second
Memory Limit 128 MB
Stats
上一题 下一题