#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
using namespace std;
const int MAXN = 1e5 + 5;
typedef long long ll;
struct pii{ int x, y; };
int A[MAXN], N, pre[MAXN];
ll sq(ll x){ return x * x; }
bool comp1(pii a, pii b){ return a.x < b.x; }
bool comp2(pii a, pii b){ return a.y < b.y; }
ll dist(pii a, pii b){ return sq(a.x - b.x) + sq(a.y - b.y); }
int brute(pii S[], int N){
ll cd = 10000000000000000LL;
for(int i=0; i<N; ++i)
for(int j=i+1; j<N; ++j) cd = min(cd, dist(S[i], S[j]));
return cd;
}
int unite(pii S[], int size, ll cd){
for(int i=0; i<size; ++i)
for(int j=i+1; j<min(size, i+8); ++j)
cd = min(cd, dist(S[i], S[j]));
return cd;
}
int divide(pii Px[], pii Py[], int N){
if(N <= 3) return brute(Px, N);
int mid = N / 2, l = 0, r = 0, j = 0;
pii Pyl[mid + 1], Pyr[N - mid], mp = Px[mid];
for(int i=0; i<N; ++i){
if(Py[i].x <= mp.x) Pyl[l++] = Py[i];
else Pyr[r++] = Py[i];
}
ll d = min(divide(Px, Pyl, mid), divide(Px + mid, Pyr, N - mid));
pii S[N + 1];
for(int i=0; i<N; ++i)
if(abs(Py[i].x - mp.x) < d) S[j++] = Py[i];
return min(d, 1LL * unite(S, j, d));
}
int main(){
scanf("%d", &N);
for(int i=1; i<=N; ++i){
scanf("%d", &A[i]);
pre[i] += pre[i - 1] + A[i];
}
pii Px[N + 1], Py[N + 1];
for(int i=0; i<N; ++i) Px[i] = (pii){i + 1, pre[i + 1]}, Py[i] = (pii){i + 1, pre[i + 1]};
sort(Px, Px + N, comp1); sort(Py, Py + N, comp2);
printf("%d\n", divide(Px, Py, N));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTiA9IDFlNSArIDU7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKc3RydWN0IHBpaXsgaW50IHgsIHk7IH07CgppbnQgQVtNQVhOXSwgTiwgcHJlW01BWE5dOwoKbGwgc3EobGwgeCl7IHJldHVybiB4ICogeDsgfQpib29sIGNvbXAxKHBpaSBhLCBwaWkgYil7IHJldHVybiBhLnggPCBiLng7IH0KYm9vbCBjb21wMihwaWkgYSwgcGlpIGIpeyByZXR1cm4gYS55IDwgYi55OyB9CmxsIGRpc3QocGlpIGEsIHBpaSBiKXsgcmV0dXJuIHNxKGEueCAtIGIueCkgKyBzcShhLnkgLSBiLnkpOyB9CgppbnQgYnJ1dGUocGlpIFNbXSwgaW50IE4pewogIGxsIGNkID0gMTAwMDAwMDAwMDAwMDAwMDBMTDsKICBmb3IoaW50IGk9MDsgaTxOOyArK2kpCiAgICBmb3IoaW50IGo9aSsxOyBqPE47ICsraikgY2QgPSBtaW4oY2QsIGRpc3QoU1tpXSwgU1tqXSkpOwogIHJldHVybiBjZDsKfQoKaW50IHVuaXRlKHBpaSBTW10sIGludCBzaXplLCBsbCBjZCl7CiAgZm9yKGludCBpPTA7IGk8c2l6ZTsgKytpKQogICAgZm9yKGludCBqPWkrMTsgajxtaW4oc2l6ZSwgaSs4KTsgKytqKQogICAgICBjZCA9IG1pbihjZCwgZGlzdChTW2ldLCBTW2pdKSk7CiAgcmV0dXJuIGNkOwp9CgppbnQgZGl2aWRlKHBpaSBQeFtdLCBwaWkgUHlbXSwgaW50IE4pewogIGlmKE4gPD0gMykgcmV0dXJuIGJydXRlKFB4LCBOKTsKICBpbnQgbWlkID0gTiAvIDIsIGwgPSAwLCByID0gMCwgaiA9IDA7CiAgcGlpIFB5bFttaWQgKyAxXSwgUHlyW04gLSBtaWRdLCBtcCA9IFB4W21pZF07CiAgZm9yKGludCBpPTA7IGk8TjsgKytpKXsKICAgIGlmKFB5W2ldLnggPD0gbXAueCkgUHlsW2wrK10gPSBQeVtpXTsKICAgIGVsc2UgUHlyW3IrK10gPSBQeVtpXTsKICB9CiAgbGwgZCA9IG1pbihkaXZpZGUoUHgsIFB5bCwgbWlkKSwgZGl2aWRlKFB4ICsgbWlkLCBQeXIsIE4gLSBtaWQpKTsKICBwaWkgU1tOICsgMV07CiAgZm9yKGludCBpPTA7IGk8TjsgKytpKQogICAgaWYoYWJzKFB5W2ldLnggLSBtcC54KSA8IGQpIFNbaisrXSA9IFB5W2ldOwogIHJldHVybiBtaW4oZCwgMUxMICogdW5pdGUoUywgaiwgZCkpOwp9CiAgCmludCBtYWluKCl7CiAgc2NhbmYoIiVkIiwgJk4pOwogIGZvcihpbnQgaT0xOyBpPD1OOyArK2kpewogICAgc2NhbmYoIiVkIiwgJkFbaV0pOwogICAgcHJlW2ldICs9IHByZVtpIC0gMV0gKyBBW2ldOwogIH0KICBwaWkgUHhbTiArIDFdLCBQeVtOICsgMV07CiAgZm9yKGludCBpPTA7IGk8TjsgKytpKSBQeFtpXSA9IChwaWkpe2kgKyAxLCBwcmVbaSArIDFdfSwgUHlbaV0gPSAocGlpKXtpICsgMSwgcHJlW2kgKyAxXX07CiAgc29ydChQeCwgUHggKyBOLCBjb21wMSk7IHNvcnQoUHksIFB5ICsgTiwgY29tcDIpOwogIHByaW50ZigiJWRcbiIsIGRpdmlkZShQeCwgUHksIE4pKTsKICByZXR1cm4gMDsKfQ==