#P1635. 2023.9.24-MHY-第三题-塔子哥算极差

2023.9.24-MHY-第三题-塔子哥算极差

题目描述

塔子哥有一天拿到了一个数组aa,他用这个数组构造一个新数组bb,其中aia_i代表bb数组中有aia_iii。例如,若a=[2,3,1]a=[2,3,1],那么b=[1,1,2,2,2,3]b=[1,1,2,2,2,3]。 现在给定aa数组,你需要帮塔子哥求出bb数组中所有连续子数组的极差之和。由于答案可能过大,请对109+710^9+7取模。数组的极差指最大值减去最小值。

输入格式

第一行输入一个正整数nn,代表aa数组的元素数量

第二行输入nn个正整数aia_i,代表aa数组的元素。

1n1051\le n\le 10^5

1ai1061 \le a_i\le 10^6

输出格式

一个整数,代表数组中所有区间的极差之和,对109+710^9+7取模的值。

样例

输入

2
2 1

输出

2

说明

a=[2,1]时,b数组为[1,1,2]。

此时b数组共有6个连续子数组:

[1]的极差为0

[1]的极差为0

[2]的极差为0

[1,1]的极差为0

[1,2]的极差为1

[1,1,2]的极差为1

因此答案是0+0+0+0+1+1=2