AT_abc234_g [ABC234G] Divide a Sequence
题目描述
给定一个长度为 $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$ 中元素的最小值。
输入格式
输入以如下格式从标准输入读入:
> $N$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
输出所求值的总和对 $998244353$ 取模后的结果。
说明/提示
### 数据范围
- $1\leq N\leq 3\times 10^5$
- $1\leq A_i\leq 10^9$
- 输入均为整数
### 样例解释 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$,输出 $2$。
### 样例解释 3
请注意,输出时需要对 $998244353$ 取模。
由 ChatGPT 4.1 翻译