电话节
总时间限制:1000ms 内存限制:128 MB
问题描述
α大使历尽颠簸千辛,终于回到了α星球,
正好赶上了α星球最盛大的节日:电话节。
α星球共有 N户人家,每户人家都有一个威望值 a i ,
在电话节的时候,每户人家都要给其他所有人打电话,通话时间就是两家威望的乘积,
请帮忙算一下,一个电话节下来,α星球总共会产生多少通话时间,
答案可能会很大,最终答案 mod 10009 即可。
输入格式
第一行一个数字 N,表示α星球共有 N 户人家。
第二行有 N 个整数,表示α星球每户人家的威望 a i 。
输出格式
输出一个整数,最终答案 mod 10009 的结果。
样例输入
3
2 3 4
样例输出
52
提示
a 1 和 a 2 通话时间是 6,
a 1 和 a 3 通话时间是 8,
a 2 和 a 1 通话时间是 6,
a 2 和a 3 通话时间是12,
a 3 和 a 1 通话时间是 8,
a 3 和a 2 通话时间是12,
总通话时间为 6 + 8 + 6 + 12 + 8 + 12 = 52。
数据规模与约定:
对于 20%的数据,1 <= N <= 100,0 <= a i <= 100。
对于 50%的数据,1 <= N <= 1000。
对于 100%的数据,1 <= N <= 10 6 ,0 <= a i <= 1000。
题解
mod 一下暴力也能得倒大部分的分数,剩下的还是要看正解。
sum=a[i]
(i=1~N)
ans=a[i]*(sum-a[i])
(i=1~N)
注意中间过程要mod10009,还要注意过程中有减法,需要把答案转正
ans=((ans%mo)+mo)%mo