蒟蒻的贪心怎么错了,只ac了前5个点
但我感觉没毛病
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, a[310], head = 1, tail, ans;
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
tail = n;
sort(a + 1, a + n + 1,cmp);//逆序排序一下
ans += a[1] * a[1];//最大的在第一个,从地上0起跳到最大高度的石头
while (head < tail)//最后相等就退出,即便相等的算上了,也是ans+0,因为相等的数相减为0
{
ans += (a[head] - a[tail]) * (a[head] - a[tail]);//每次都加上落差最大的,即两端的差平方
++head;
ans += (a[head] - a[tail]) * (a[head] - a[tail]);
--tail;
}
cout << ans;
return 0;
}
```cpp