HDU T4989 Summary
题解
题意是给你N个数,两两相加,等到新的N*(N-1) / 2个数,将新的数去重之后求其总和。
常规去重比较麻烦,所以我们可以用STL中的set。本题还用到了迭代器。
代码
#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
typedef long long ll;
ll a[105];
int main(){
int n;
ll sum;
set<ll> s;
while(cin >> n){
sum = 0;
s.clear();
for(int i = 0; i < n; ++i)
cin >> a[i];
for(int i = 0; i < n; ++i)
for(int j = i+1; j < n; ++j)
s.insert(a[i]+a[j]);
set<ll>::iterator it;
for(it = s.begin(); it != s.end(); ++it)
sum += *it;
printf("%lld\n",sum);
}
return 0;
}