#YHW1104. 平方的和

平方的和

题目描述

给定nn个整数a1,a2,,ana_1,a_2,\cdots,a_n,需要计算所有满足1i<jn1\leq i < j \leq n(ai+aj)2(a_i + a_j)^2的和,即1i<jn(ai+aj)2\sum_{1\leq i < j \leq n}(a_i + a_j)^2 。由于计算结果可能非常大,最终输出答案对1,000,000,0071,000,000,007取模的余数。

输入格式

  • 第一行:一个整数nn,表示整数的个数。
  • 第二行:nn个整数a1,a2,,ana_1,a_2,\cdots,a_n,以空格分隔。

输出格式

一个整数,为计算得到的和对1,000,000,0071,000,000,007取模后的余数。

数据范围

  • 30%的数据:1n1001\leq n \leq 1000ai<1000\leq a_i < 100
  • 60%的数据:1n100001\leq n \leq 100000ai<100000\leq a_i < 10000
  • 100%的数据:1n1,000,0001\leq n \leq 1,000,0000ai<1,000,0000\leq a_i < 1,000,000

样例数据

  • 输入
3
1 2 3
  • 输出
50
  • 说明:计算过程为3×3+4×4+5×53\times3 + 4\times4 + 5\times5 ,其中3=1+23 = 1 + 24=1+34 = 1 + 35=2+35 = 2 + 3

1i<jn(ai+aj)2\sum_{1\leq i < j \leq n}(a_i + a_j)^2 。根据完全平方公式 (a+b)2=a2+2ab+b2(a + b)^2 = a^2 + 2ab + b^2,可将原式展开为: 1i<jn(ai2+2aiaj+aj2)\sum_{1\leq i < j \leq n}(a_i^2 + 2a_ia_j + a_j^2)