import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine(); // 消耗掉换行符
String[] parts = sc.nextLine().split(" ");
long[] A = new long[n];
for (int i = 0; i < n; i++) {
A[i] = Long.parseLong(parts[i]);
}
// 计算x = i² + A_i²的最大最小值
long maxX = Long.MIN_VALUE;
long minX = Long.MAX_VALUE;
// 计算y = i² - A_i²的最大最小值
long maxY = Long.MIN_VALUE;
long minY = Long.MAX_VALUE;
for (int i = 0; i < n; i++) {
// 注意索引是从1开始的
long index = i + 1;
long indexSq = index * index;
long aSq = A[i] * A[i];
long x = indexSq + aSq;
long y = indexSq - aSq;
maxX = Math.max(maxX, x);
minX = Math.min(minX, x);
maxY = Math.max(maxY, y);
minY = Math.min(minY, y);
}
// 最大距离是两个差值中的较大者
long maxDist = Math.max(maxX - minX, maxY - minY);
System.out.println(maxDist);
}
}
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define N 100005
//本题做法:|i^2-j^2|+|ai^2-aj^2|存在2个变量(因为ai,aj可以用下标i,j表示出来)
//但是ij之间没有必然联系,我们要试着化简把i,ai放在一起j,aj一起
//|i^2-j^2|+|ai^2-aj^2|,分类讨论可以得到4种情况
//1:|i^2-j^2|>=0且|ai^2-aj^2|>=0 =>(i^2-j^2)+(ai^2-aj^2)=>(i^2+ai^2)-(j^2+aj^2)
//2: |i^2-j^2|>=0且|ai^2-aj^2|<0 =>(i^2-j^2)-(ai^2-aj^2)=>(i^2-ai^2)-(j^2-aj^2)
//3: <0且>=0 =>-(i^2-j^2)+(ai^2-aj^2)=>-(i^2-ai^2)+(j^2-aj^2)
//4: <0且<0 =>-(i^2-j^2)-(ai^2-aj^2)=>-(i^2+ai^2)+(j^2+aj^2)
//相似的放在一起直观的比较一下
//(i^2+ai^2)-(j^2+aj^2) i>=j且ai>=aj的情况
//-(i^2+ai^2)+(j^2+aj^2) i<j且ai<aj的情况
//观察可以知道都是()大的-()小的,我们排序后取用最大值-最小值就可以
//(i^2-ai^2)-(j^2-aj^2) i>=j且ai<aj的情况
//-(i^2-ai^2)+(j^2-aj^2) i<j且ai>=aj的情况
//这个也是同理,()大-()小
int n;
int a[N];
int b[N],c[N];
signed main() {
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++){
b[i]=i*i+a[i]*a[i];
c[i]=i*i-a[i]*a[i];
}
sort(b+1,b+1+n);
sort(c+1,c+1+n);
int ans=0;
ans=max(b[n]-b[1],c[n]-c[1]);
cout<<ans<<endl;
return 0;
}