from math import inf
import sys

def main():
    # 读取输入
    n = int(sys.stdin.readline())
    arr = list(map(int, sys.stdin.readline().split()))

    # 处理特殊情况:n=1时没有合法的(i,j)对
    if n == 1:
        print(0)
        return

    # 分析问题:
    # 我们需要计算所有i<j时的表达式:j^2 - i^2 + |arr[i-1]^2 - arr[j-1]^2|
    # 这个表达式可以分为两种情况:
    # 情况1:当arr[j-1]^2 >= arr[i-1]^2时:
    #   j^2 - i^2 + arr[j-1]^2 - arr[i-1]^2 = (j^2 + arr[j-1]^2) - (i^2 + arr[i-1]^2)
    # 情况2:当arr[j-1]^2 < arr[i-1]^2时:
    #   j^2 - i^2 + arr[i-1]^2 - arr[j-1]^2 = (j^2 - arr[j-1]^2) - (i^2 - arr[i-1]^2)
    # 因此,我们需要分别计算这两种情况的最大值

    # 初始化变量:
    # max_diff_A记录情况1的最大值
    # min_A记录情况1的最小前缀值
    # max_diff_B记录情况2的最大值
    # min_B记录情况2的最小前缀值
    max_diff_A = -inf
    min_A = 1**2 + arr[0]**2  # i=1时的A值

    max_diff_B = -inf
    min_B = 1**2 - arr[0]**2  # i=1时的B值

    # 从i=2开始遍历(因为j>i,所以i最小是1,j最小是2)
    for j in range(2, n + 1):
        # 计算当前j的A值和B值
        curr_A = j**2 + arr[j-1]**2
        curr_B = j**2 - arr[j-1]**2

        # 更新情况1的最大差值
        max_diff_A = max(max_diff_A, curr_A - min_A)
        # 更新情况1的最小前缀值
        min_A = min(min_A, curr_A)

        # 更新情况2的最大差值
        max_diff_B = max(max_diff_B, curr_B - min_B)
        # 更新情况2的最小前缀值
        min_B = min(min_B, curr_B)

    # 最终结果是两种情况的最大值
    print(max(max_diff_A, max_diff_B))

if __name__ == "__main__":
    main()