402010 - 子数组最值之差

给定长度为 n 的数组 a,定义子数组 [l, r] 的范围函数: f(l, r) = max{al, al+1, ..., ar} - min{al, al+1, ..., ar} 求全部连续非空子数组的 f(l, r) 累加总和,计算公式: ∑(i=1)^n▒∑(j=i)^n▒〖f(i,j)〗 由于答案可能很大,你只需要输出答案对 998244353 取模后的结果。

输入

第一行:整数 n(1 ≤ n ≤ 10^5),数组长度; 第二行:n 个整数,数组 a(0 ≤ ai ≤ 10^5)的全部元素。

输出

单独一行,输出取模后的最终总和。

样例

输入

3
2 1 3

输出

5

提示

全部 6 个子数组分别计算: [2]:2 – 2 = 0 [2, 1]:2 – 1 = 1 [2, 1, 3]:3 – 1 = 2 [1]:1 – 1 = 0 [1, 3]:3 – 1 = 2 [3]:3 – 3 = 0 累加求和:0 + 1 + 2 + 0 + 2 + 0 = 5

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