题解:本题主要考查贪心。如果要值最大,就要高度差最大,所以先排序在剩余的石头中最大和最小来回跳就可以啦。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
long long int a[310],num=0;
int n,i,p,q;
int main()
{
cin>>n;
for(i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+1+n);
p=0;q=n;
while(p<q)
{
num=(a[q]-a[p])*(a[q]-a[p])+num;
p++;
num=(a[p]-a[q])*(a[p]-a[q])+num;
q--;
}
cout<<num;
return 0;
}