Divide a Sequence
题目描述
给定一个长度为 N 的数列 A。
有 2N−1 种方法可以将 A 划分为若干个非空的连续子序列 B1,B2,…,Bk。对每一种划分,求下面的值,并输出这些值的和对 998244353 取模的结果。
∏i=1k(max(Bi)−min(Bi))
这里,对于序列 Bi=(Bi,1,Bi,2,…,Bi,j),max(Bi) 和 min(Bi) 定义为 Bi 中元素的最大值和最小值。
输入格式
输入从标准输入按照如下格式给出:
N
A1 A2 … AN
输出格式
打印这些值的和对 998244353 取模的结果。
3
1 2 3
2
4
1 10 1 10
90
10
699498050 759726383 769395239 707559733 72435093 537050110 880264078 699299140 418322627 134917794
877646588
提示
1≤N≤3×105
1≤Ai≤109
输入中的所有数值均为整数。将 A=(1,2,3) 划分为非空连续子序列共有 4 种划分,如下所示。
(1),(2),(3)
(1),(2,3)
(1,2),(3)
(1,2,3)
这些划分对应的 ∏i=1k(max(Bi)−min(Bi)) 分别为 0、0、0、2。它们的和 2 应当被输出。
注意要对 998244353 取模后输出。
标签: AtCoder|abc234G
来源
AtCoder|abc234G