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 $。