【普及】子序列的最值之差
给你一个长度为 n 的数组 a
- 子序列 定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组。
- 例如,[3,6,2,7] 就是数组 [0,3,1,6,2,2,7] 的一个子序列。
- 请大家思考:长度为 n 的数组 a 有多少个非空的子序列呢?
一个序列的 宽度 定义为该序列中 最大元素和最小元素的差值
请你计算数组 a 的 所有非空子序列的宽度之和
由于答案可能非常大,请返回对 998244353 取余 后的结果
输入格式
第一行包含一个整数 n 代表数组长度;
第二行包含 n 个整数表示数组 a
输出格式
对于每组数据输出一行,包含答案
3
2 1 3
6
提示
【样例 1 解释】
- 子序列 [2] 的宽度为 2−2=0
- 子序列 [1] 的宽度为 1−1=0
- 子序列 [3] 的宽度为 3−3=0
- 子序列 [2,1] 的宽度为 2−1=1
- 子序列 [2,3] 的宽度为 3−2=1
- 子序列 [1,3] 的宽度为 3−1=2
- 子序列 [2,1,3] 的宽度为 3−1=2
- 宽度之和为 0+0+0+1+1+2+2=6
【数据范围】
- 1≤n≤105
- 0≤ai≤105
请思考后再点击查看提示
来源