#include<stdio.h>
int a[121212],b[121212];
int main() {
int n,i ,j;
int s = -1, e;
long long ans = 0;
scanf("%d", &n);
for (i = 0; i < n; i++) scanf("%d", &b[i]);
a[0] = b[0];
for (i = 1, j = n - 1; i < n; i++, j--)a[i] = b[j];
for (i = 0; i < n; i++)if (!a[i])s = e = i;
if (s == -1) { printf("0"); return 0; }
int now = 1;
while (s != (e + 1) % n) {
if (now + 1 - a[e + 1] < 0)s=(s-1+n)%n,now += 1 - a[s];
else e=(e+1)%n,now += 1 - a[e];
}
now = s;
for (i = 0; i < n; i++)b[i] = a[now], now = (now + 1)%n;
now = 0;
for (i = 0; i < n; i++) {
while (!b[now])now++;
ans += (now - i)*(now - i);
b[now]--;
}
printf("%lld", ans);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IGFbMTIxMjEyXSxiWzEyMTIxMl07CmludCBtYWluKCkgewoJaW50IG4saSAsajsKCWludCBzID0gLTEsIGU7Cglsb25nIGxvbmcgYW5zID0gMDsKCXNjYW5mKCIlZCIsICZuKTsKCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHNjYW5mKCIlZCIsICZiW2ldKTsKCWFbMF0gPSBiWzBdOwoJZm9yIChpID0gMSwgaiA9IG4gLSAxOyBpIDwgbjsgaSsrLCBqLS0pYVtpXSA9IGJbal07Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKWlmICghYVtpXSlzID0gZSA9IGk7CglpZiAocyA9PSAtMSkgeyBwcmludGYoIjAiKTsgcmV0dXJuIDA7IH0KCWludCBub3cgPSAxOwoJd2hpbGUgKHMgIT0gKGUgKyAxKSAlIG4pIHsKCQlpZiAobm93ICsgMSAtIGFbZSArIDFdIDwgMClzPShzLTErbiklbixub3cgKz0gMSAtIGFbc107CgkJZWxzZSBlPShlKzEpJW4sbm93ICs9IDEgLSBhW2VdOwoJfQoJbm93ID0gczsKCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspYltpXSA9IGFbbm93XSwgbm93ID0gKG5vdyArIDEpJW47Cglub3cgPSAwOwoJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewoJCXdoaWxlICghYltub3ddKW5vdysrOwoJCWFucyArPSAobm93IC0gaSkqKG5vdyAtIGkpOwoJCWJbbm93XS0tOwoJfQoJcHJpbnRmKCIlbGxkIiwgYW5zKTsKCXJldHVybiAwOwp9Cg==