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();
})();