n 个数可以选出 2^n - 1 个集合 (集合元素可相同)。
每个集合价值为:集合里最大值乘集合里最小值( max×min )。
求所有集合的价值的和并对 1000000007 取模。
输入格式
第一行有一个正整数 n。
接下来一行 n 个数 s1,s2,s3,s4,⋯,sn 表示集合里的元素
输出格式
每一行一个答案
取模就是取余数 a 模 b (a mod b) 就是 a÷b 的余数
c/c++中用 % 表示即a%b
评测用例规模与约定:
对于 10% 的数据:1≤n≤10,0<si≤1000000000
对于40% 的数据: 1≤n≤20000,0<si≤1000000000
对于 100% 的数据:1≤n≤100000,0<si≤1000000000
输出时每行末尾的多余空格,不影响答案正确性
样例输入复制
3 1 2 3
样例输出复制
28
样例解释
样例可以选出 7个集合
(1)(1,2)(1,3)(1,2,3)(2)(2,3)(3)
价值为 (1∗1)+(1∗2)+(1∗3)+(1∗3)+(2∗2)+(2∗3)+(3∗3)=1+2+3+3+4+6+9=28
答案需要取模28%1000000007=28 所以答案输出 28
思路:看图: