f:array[1..200,1..2000]of longint;
k,i,j,n,len:longint;
ans,max:longint;
procedure re;
begin
readln(n);
for i:=1 to n do begin
read(a[i]);
a[i+n]:=a[i];
end;
end;
procedure main;
begin
ans:=0;
for i:=1 to 2*n do
for j:=1 to 2*n do f[i,j]:=0;
for len:=2 to n do
for i:=1 to 2*n-len+1 do begin
j:=i+len-1;
max:=0;
for k:=i to j-1 do begin
max:=f[i,k]+f[k+1,j]+a[i]*a[j+1]*a[k+1];
if max>f[i,j]
then f[i,j]:=max;
end;
end;{i}
for i:=1 to n do begin
if f[i,i+n-1]>ans then ans:=f[i,i+n-1];
end;
end;
procedure wu;
begin
write(ans);
end;
begin
re;
main;
wu;
end.
rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----rp----
原题解,比你早8个月,一模一样
rp-------------------------------------