#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define pre(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
#define N 10005
int n, a[N], b[N], u[N], c[N], d[N], w[N], T = 0;
typedef long long LL;
LL ans = 0x7fffffffffffffffLL;
void dfs(int flr,int l,int r,int sum,int S,int ls,int rs){
if(flr > T){ans = min(ans, 1LL * sum * n - 1LL * S * S);return ;}
rep(i, 1, d[flr])ls += c[flr], u[l++] = c[flr], sum += ls * ls, S += ls;
dfs(flr + 1, l, r, sum, S, ls, rs);
rep(i, 1, d[flr]){
sum += (a[n] - rs) * (a[n] - rs), S += a[n] - rs, u[r--] = c[flr], rs += c[flr];
S -= ls, sum -= ls * ls, l--, ls -= c[flr];
dfs(flr + 1, l, r, sum, S, ls, rs);
}
}
int main(){
scanf("%d", &n);
rep(i, 1, n)scanf("%d", &a[i]);
rep(i, 1, n - 1)b[i] = a[i + 1] - a[i];
sort(b + 1, b + n);
reverse(b + 1, b + n);
rep(i, 1, n - 1)if(i == 1 || b[i] != b[i - 1]){
c[++T] = b[i], d[T] = 1;
}
else d[T]++;
dfs(1, 1, n - 1, a[1] * a[1], a[1], a[1], 0);
printf("%lld\n", ans);
return 0;
}