CF1167F Scalar Queries
题目描述
给出一个数组 $a_1,a_2,\dots,a_n$,其中所有元素两两不同。
定义函数 $f(l,r)$:
- 定义数组 $b_1,b_2,\dots,b_{r-l+1}$,其中 $b_i=a_{l-1+i}$;
- 将 $b$ 按从小到大排序;
- 则此时函数的值是 $\sum\limits_{i=1}^{r-l+1}{b_i}\cdot i$。
请计算对于所有满足 $1 \le l \le r \le n$ 的 $l$ 和 $r$ 的 $f(l,r)$ 的和。
由于结果可能很大,请输出结果对 $10^9+7$ 取模的值。
输入格式
第一行包含一个整数 $n$($1\le n\le 5\times 10^5$),即给定数组的长度。
第二行包含 $n$ 个整数 $a_1,a_2,\dots,a_n$($1\le a_i\le 10^9$),表示数组元素。
输出格式
输出一个整数,表示答案对 $10^9+7$ 取模的值。
说明/提示
样例 1 解释:
- $ f(1, 1) = 5 \cdot 1 = 5 $;
- $ f(1, 2) = 2 \cdot 1 + 5 \cdot 2 = 12 $;
- $ f(1, 3) = 2 \cdot 1 + 4 \cdot 2 + 5 \cdot 3 = 25 $;
- $ f(1, 4) = 2 \cdot 1 + 4 \cdot 2 + 5 \cdot 3 + 7 \cdot 4 = 53 $;
- $ f(2, 2) = 2 \cdot 1 = 2 $;
- $ f(2, 3) = 2 \cdot 1 + 4 \cdot 2 = 10 $;
- $ f(2, 4) = 2 \cdot 1 + 4 \cdot 2 + 7 \cdot 3 = 31 $;
- $ f(3, 3) = 4 \cdot 1 = 4 $;
- $ f(3, 4) = 4 \cdot 1 + 7 \cdot 2 = 18 $;
- $ f(4, 4) = 7 \cdot 1 = 7 $。