const readline = require("readline");
//注意用bigint
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const iter = rl[Symbol.asyncIterator]();
const line = async (): Promise<string> => (await iter.next()).value;
(async function () {
const N = Number(await line());
const m1: Array<bigint> = [];
const m2: Array<bigint> = [];
(await line()).split(" ").map((num: string, i: number) => {
const t1 = BigInt(num) * BigInt(num);
const t2 = BigInt(i + 1) * BigInt(i + 1);
m1.push(t1 + t2);
m2.push(t1 - t2);
});
let res = BigInt(0);
let temp1 = m1[N - 1];
for (let i = N - 1; i >= 0; i--) {
if (temp1 > m1[i]) continue;
else temp1 = m1[i];
for (let j = 0; j < i; j++) {
if (m1[i] > m1[j]) {
res = res > m1[i] - m1[j] ? res : m1[i] - m1[j];
}
}
}
let temp2 = m2[N - 1];
for (let i = N - 1; i >= 0; i--) {
if (temp2 < m2[i]) continue;
else temp2 = m2[i];
for (let j = 0; j < i; j++) {
if (m2[i] < m2[j]) {
res = res > m2[j] - m2[i] ? res : m2[j] - m2[i];
}
}
}
console.log(res.toString());
rl.close();
})();