题目:
核心:
贪心策略:每次都跳距离自己最远的石头
收获:双指针(下标)的使用
代码:
#include<iostream>
using namespace std;
# define M 100
#include<algorithm>
#include<math.h>
int sa[100005];
int main()
{
int n;cin>>n;
for(int i=1;i<=n;i++)
{
cin>>sa[i];
}
sort(sa+1,sa+n+1);
int sum=pow(sa[n],2);
int l=1;int r=n;
while(l<r)
{
if(l<r)
{
sum+=pow(sa[r]-sa[l],2);
r--;
}
if(l<r)
{
sum+=pow(sa[r]-sa[l],2);
l++;
}
}
cout<<sum<<endl;
}