求和【第十三届蓝桥杯省赛C++A/C组 , 第十三届蓝桥杯省赛JAVAA组】

2023-02-21,,

求和

给定 \(n\) 个整数 \(a1,a2,⋅⋅⋅,an\),求它们两两相乘再相加的和,即

\(S=a1⋅a2+a1⋅a3+⋅⋅⋅+a1⋅an+a2⋅a3+⋅⋅⋅+an−2⋅an−1+an−2⋅an+an−1⋅an\)

输入格式

输入的第一行包含一个整数 \(n\)。

第二行包含 \(4n\) 个整数 \(a1,a2,⋅⋅⋅,an\)

输出格式

输出一个整数 \(S\),表示所求的和。

请使用合适的数据类型进行运算。

数据范围

对于 \(30%\) 的数据,\(1≤n≤1000,1≤ai≤100\)。

对于所有评测用例,\(1≤n≤200000,1≤ai≤1000\)。

输入样例:

4

1 3 6 9

输出样例:

117

Code

点击查看代码
#include<iostream>
#include<algorithm>
using namespace std; typedef long long LL;
int n;
const int N = 1e6 + 10;
LL a[N],s[N],ans; int main(){
cin >> n;
for(int i = 1; i <= n; i ++ ){cin >> a[i];s[i] = s[i - 1] + a[i];}
for(int i = 1; i <= n - 1; i ++ )ans += a[i] * (s[n] - s[i]);
cout << ans;
}

注意

    long long

求和【第十三届蓝桥杯省赛C++A/C组 , 第十三届蓝桥杯省赛JAVAA组】的相关教程结束。

《求和【第十三届蓝桥杯省赛C++A/C组 , 第十三届蓝桥杯省赛JAVAA组】.doc》

下载本文的Word格式文档,以方便收藏与打印。