100
#LS1246. 【普及】子序列的最值之差

【普及】子序列的最值之差

【普及】子序列的最值之差

给你一个长度为 nn 的数组 aa

  • 子序列 定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组。
  • 例如,[3,6,2,7][3,6,2,7] 就是数组 [0,3,1,6,2,2,7][0,3,1,6,2,2,7] 的一个子序列。
  • 请大家思考:长度为 nn 的数组 aa 有多少个非空的子序列呢?

一个序列的 宽度 定义为该序列中 最大元素和最小元素的差值

请你计算数组 aa所有非空子序列的宽度之和

由于答案可能非常大,请返回对 998244353 取余 后的结果

输入格式

第一行包含一个整数 nn 代表数组长度;

第二行包含 nn 个整数表示数组 aa

输出格式

对于每组数据输出一行,包含答案

3
2 1 3
6

提示

【样例 1 解释】

  • 子序列 [2][2] 的宽度为 22=02-2=0
  • 子序列 [1][1] 的宽度为 11=01-1=0
  • 子序列 [3][3] 的宽度为 33=03-3=0
  • 子序列 [2,1][2,1] 的宽度为 21=12-1=1
  • 子序列 [2,3][2,3] 的宽度为 32=13-2=1
  • 子序列 [1,3][1,3] 的宽度为 31=23-1=2
  • 子序列 [2,1,3][2,1,3] 的宽度为 31=23-1=2
  • 宽度之和为 0+0+0+1+1+2+2=60+0+0+1+1+2+2=6

【数据范围】

  • 1n1051 \le n \le 10^5
  • 0ai1050 \le a_i \le 10^5
请思考后再点击查看提示

来源