#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
void remove_(int a[],int n,int xb)
{
for(int i=xb;i<n;i++)
{
a[i]=a[i+1];
}
return ;
}
int main()
{
int n;
cin >> n;
int a[302];
for(int i=0;i<n;i++)
cin >> a[i];
bool flag=0;//这边定义一个flag。0代表找最大值 ;1代表找最小值
sort(a,a+n);
int sum=0;
int now=0;
int tmn=n;
for(int i=0;i<n;i++)
{
/*
for(int j=0;j<n;j++)
cout << a[j] << " ";
cout << endl;
*/
if(flag==0)
{
sum+=pow(abs(a[tmn-1]-now),2);
now=a[tmn-1];
remove_(a,tmn,tmn-1);
tmn--;
flag=!flag;
}
else
{
sum+=pow(abs(a[0]-now),2);
now=a[0];
remove_(a,tmn,0);
tmn--;
flag=!flag;
}
//cout << sum << endl;
}
cout << sum;
return 0;
}
这个有点模拟的意味,但还是贪心的思路。 为什么会是50分呢