讨论 / 求助!各位大神帮忙看一下怎么错了!
李梦雨 2011-08-06 02:26:00
点我顶贴 收藏 删除
var a,b,c,k:array[0..1000]of longint;

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.

查看更多回复
提交回复