#abc234g. [abc234_g]Divide a Sequence

[abc234_g]Divide a Sequence

题目描述

给定一个由 NN 个数字构成的序列 AA

AA 分割为非空的连续子序列 B1,B2,ldots,BkB_1,B_2,\\ldots,B_k2N12^{N-1} 种方式。对于每种方式,计算如下值,并打印这些值的和对 998244353998244353 取模的结果。

  • prodi=1k(max(Bi)min(Bi))\\prod_{i=1}^{k} (\\max(B_i)-\\min(B_i))

这里,对于序列 Bi=(Bi,1,Bi,2,ldots,Bi,j)B_i=(B_{i,1},B_{i,2},\\ldots,B_{i,j})max(Bi)\\max(B_i) 表示元素 BiB_i 中的最大值,min(Bi)\\min(B_i) 表示元素 BiB_i 中的最小值。

约束条件

  • 1leqNleq3times1051 \\leq N \\leq 3 \\times 10^5
  • 1leqAileq1091 \\leq A_i \\leq 10^9
  • 输入中的所有值均为整数。

输入

从标准输入读入数据,输入的格式如下:

NN A1A_1 A2A_2 ldots\\ldots ANA_N

输出

打印计算得到的值的和对 998244353998244353 取模的结果。


示例输入 1

3
1 2 3

示例输出 1

2

A=(1,2,3)A=(1,2,3) 分割为非空的连续子序列有 44 种方式,如下所示:

  • (1)(1), (2)(2), (3)(3)
  • (1)(1), (2,3)(2,3)
  • (1,2)(1,2), (3)(3)
  • (1,2,3)(1,2,3)

这些方式对应的 prodi=1k(max(Bi)min(Bi))\\prod_{i=1}^{k} (\\max(B_i)-\\min(B_i)) 的值分别为 00, 00, 00, 22。将它们的和 22 打印出来。


示例输入 2

4
1 10 1 10

示例输出 2

90

示例输入 3

10
699498050 759726383 769395239 707559733 72435093 537050110 880264078 699299140 418322627 134917794

示例输出 3

877646588

请确保将计算结果对 998244353998244353 取模后输出。