863671241 2010-07-28 09:36:00
点我顶贴
收藏
删除
var
n,i,j,k,max:longint;
b:array[0..100]of longint;
f:array[1..1000,1..1000]of longint;
begin
readln(n);
for i:=1 to n do begin read(b[i]);b[n+i]:=b[i];end;
for i:=1 to n-1 do
for j:=1 to n do
for k:=j to j+i-1 do
if f[j,k]+f[k+1,j+i]+b[j]*b[k+1]*b[j+i+1]>f[j,j+i] then
f[j,j+i]:=f[j,k]+f[k+1,j+i]+b[j]*b[k+1]*b[j+i+1];
for i:=1 to n do
if f[i,n+i-1]>max then max:=f[i,n+i-1];
writeln(max);
readln;
readln;
end.