liye14 2010-03-22 01:57:00
点我顶贴
收藏
删除
var
i,j,k,n,u,max1:longint;
a:array[0..100] of record l,r:longint;end;
f:array[1..100,1..100] of longint;
function max(o,p:longint):longint;
begin
if o>p then max:=o else max:=p;
end;
begin
readln(n);read(a[1].l);
for i:=2 to n do
begin
read(a[i].l);a[i-1].r:=a[i].l;
end;
a[n].r:=a[1].l;
for u:=1 to n do
begin
for i:=1 to n-1 do
for j:=i+1 to n do
for k:=i to j-1 do
f[i,j]:=max(f[i,j],f[i,k]+f[k+1,j]+a[i].l*a[k].r*a[j].r);
if f[1,n]>max1 then max1:=f[1,n];
fillchar(f,sizeof(f),0);
for i:=1 to n do
begin
a[i-1].l:=a[i].l;a[i-1].r:=a[i].r;
end;
a[n].l:=a[0].l;a[n].r:=a[0].r;
end;
writeln(max1);
end.