讨论 / 请大牛指点,为什么错了
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.

查看更多回复
提交回复