n个数,将其两两相加生成n(n-1)/2 去重后求和
因为n很小,所以直接按照题意中所说的暴力生成去重求和即可
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#include<set>
#include<stack>
#define bug puts("bugbugbug");
using namespace std;
typedef long long ll;
set<long long >st;
long long a[1000];
int main()
{
int n;
while(~scanf("%d",&n))
{
st.clear();
for(int i=0; i<n; i++)
scanf("%lld",&a[i]);
for(int i=0; i<n; i++)
for(int j=i+1; j<n; j++)
{
st.insert(a[i]+a[j]);
}
set<long long>::iterator ii;
long long sum=0;
for(ii=st.begin(); ii!=st.end(); ii++)
{
sum+=*ii;
}
printf("%lld\n",sum);
}
return 0;
}