题目描述
解题思路
对题目进行分析,可知两两相乘再相加的和由下式决定
内层求和可用总和不断减去a[i]来记录
代码
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
int main() {
vector<int> nums;
int N;
cin >> N;
vector<long long> S(N);
while (N--) {
int temp;
cin >> temp;
nums.push_back(temp);
}
long long sum = 0;
long long nums_sum = 0;
for (int i = 0; i < nums.size(); i++) {
nums_sum += nums[i];
}
for (int i = 0; i < nums.size(); i++) {
S[i] = nums_sum - nums[i];
sum += S[i] * nums[i];
nums_sum -= nums[i];
}
cout << sum;
return 0;
}