f:array[1..1000,1..1000]of longint;
n,x,y,ans,i,v,j:longint;
procedure init;
begin
readln(n);
for i:=1to n do
read(c[i]);
for i:=2to n do
begin
a[c[i]]:=c[i-1];
b[c[i]]:=c[i+1];
end;
a[c[1]]:=c[n];
b[c[n]]:=c[1];
f[c[1],c[2]]:=0;
end;
procedure solve(x,y:longint);
begin
j:=f[x,y]+x*y*a[x];
v:=f[x,y]+x*y*b[y];
if j>v then
begin
f[x,y]:=j;
x:=a[x];
end
else
begin
f[x,y]:=v;
y:=b[y];
end;
if j=v then
begin
f[x,y]:=j;
y:=b[y];
end;
if x=y then
begin
ans:=f[x,y];
exit;
end
else
solve(x,y);
end;
begin
init;
solve(c[1],c[2]);
write(ans);
end.