题目描述 Description
求a1a2+a1a3+a1a4+…+a1an+a2a3+a2a4+…+a2an+a3a4+…+a3an+…+an-2an-1+an-2an+an-1an的值。
输入输出格式 Input/output
输入格式:
第一行,一个整数n,
第二行,n个整数,代表ai(a[i])。
输出格式:
输出一行,一个整数表达式的值。
样例测试点#3
输入样例: 在线IDE
15
3 5 6 7 9 10 11 12 14 15 17 20 23 24 26
输出样例:
18674
样例测试点#4
输入样例: 在线IDE
30
1 3 4 6 8 11 15 5 2 7 3 3 6 7 9 11 15 21 24 3 1 5 6 7 8 90 1 5 8 3
输出样例:
39162
说明 description
数据规模:
对于100%的数据,2<=n<=1000000,1<=a[i]<=1000。
#include<cstdio> int main() { int n,a[100000],i,j; long long sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); sum+=a[i]; } long long sum1=0,sum2=0,ans=0; for(i=1;i<=n;i++) { sum1+=a[i]; sum2=sum-sum1; ans+=a[i]*sum2; } printf("%I64d",ans); }
把O(N*N)的复杂度变为O(N)
时间: 2024-10-17 13:29:55