#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main() {
int n;cin >> n;
LL a[n] = { 0 };
for (int i = 0;i < n;i++) {
cin >> a[i];
if (a[i] > a[0])swap(a[i], a[0]);
}
//按照差值最大值排序
for (int i = 0;i < n - 1;i++) {
int t = abs(a[i + 1] - a[i]);
for (int j = i + 1;j < n;j++) {
if (abs(a[j] - a[i]) > t) { swap(a[j], a[i + 1]);t = abs(a[i + 1] - a[i]); }
}
}
// for (int i = 0;i < n;i++)cout << a[i] << ' ';
// cout << endl;
LL sum = a[0] * a[0];
for (int i = 0;i < n - 1;i++)sum += (a[i + 1] - a[i]) * (a[i + 1] - a[i]);
cout << sum;
}
我看大家似乎都用的顺序然后左右指针,此处给出一个比较容易理解的算法,效率不高,但勉强AC