题目链接:http://codeforces.com/contest/1106/problem/C
题意是给了n个数,n为偶数,要讲这n个数分为m组,每组最少有两个数,问他们的平方和最小是多少。
显然让一个最小的和一个最大的分一组的方法是最优的...感觉BC题顺序反了...
AC代码:
代码语言:javascript复制#include <bits/stdc .h>
#define ll long long
using namespace std;
int n;
int pre[300005];
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i ){
scanf("%d",&pre[i]);
}
sort(pre, pre n);
ll ans = 0;
for(int i=0,j=n-1;i<n/2;i ,j--){
ans = ((ll)(pre[i] pre[j]) * (ll)(pre[i] pre[j]));
}
printf("%lldn", ans);
return 0;
}