#418. [R67D]有趣值

[R67D]有趣值

时空限制

1S/512M

题目描述

给定一个长度为 nn 的正整数数组 aa

对于数组中的任意一对不同位置 i,ji, j,其中 i<ji < j,定义这一对数的“有趣值”为:

aiaj×(ai+aj)|a_i - a_j| \times (a_i + a_j)

也就是说,这一对数的“有趣值”等于它们差的绝对值^\dagger乘以它们的和。

请你计算数组中所有不同数对的“有趣值”的和。即:

$$\sum_{i = 1}^{n} \sum_{j = i + 1}^{n} |a_i - a_j| (a_i + a_j) $$

由于答案可能很大,你只需输出答案对 109+710^9 + 7 取模后的结果。

绝对值^\dagger: x|x| 表示整数 xx 的绝对值,定义为:

$$|x| = \begin{cases} x, & x \ge 0 \\ -x, & x < 0 \end{cases} $$

例如,31=2|3-1|=213=2|1-3|=2

格式

输入格式

第一行包含一个整数 nn,表示数组的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,中间用空格隔开。

输出格式

输出一个整数,表示“有趣值”的和对 109+710^9 + 7 取模后的结果。

样例

样例输入 #1

3
3 1 2

样例输出 #1

16

样例解释 #1

  • i=1,j=2i=1, j=2 时:$|a_1 - a_2|(a_1 + a_2) = |3 - 1| \times (3 + 1) = 2 \times 4 = 8$
  • i=1,j=3i=1, j=3 时:$|a_1 - a_3|(a_1 + a_3) = |3 - 2| \times (3 + 2) = 1 \times 5 = 5$
  • i=2,j=3i=2, j=3 时:$|a_2 - a_3|(a_2 + a_3) = |1 - 2| \times (1 + 2) = 1 \times 3 = 3$

总和为 8+5+3=168 + 5 + 3 = 1616mod(109+7)=1616 \bmod{(10^9 + 7)} = 16

数据规模

注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 nn\le
11 4040 30003000
22 6060 10610^6

对于 100%100\% 的数据,1n1061 \le n \le 10^61ai1091 \le a_i \le 10^9