讨论 / 请大牛帮忙找错
xiaohuhu525 2009-04-22 03:10:00
点我顶贴 收藏 删除
GF 50分

program gf;

var

a:array[1..1000,1..1000] of longint;

b,c:array[0..1000,0..1000] of longint;

i,j,n,m,r,k,j1,k1,nx,tx:longint;

begin

readln(n);

for i:=1 to n do

for j:=1 to 3 do

read(a[i,j]);

read(m,r);

for i:=1 to n do

begin

for j:=m downto 0 do

for k:=r downto 0 do

begin

if ((j=0) and (k=0)) or (b[j,k]<>0) then

begin

j1:=j+a[i,1];k1:=k+a[i,2];

if (j1<=m) and (k1<=r) then

begin

if b[j,k]+1>b[j1,k1] then

begin

b[j1,k1]:=b[j,k]+1;c[j1,k1]:=c[j,k]+a[i,3];

end;

if b[j,k]+1=b[j1,k1] then

begin

if c[j,k]+a[i,3]<c[j1,k1] then c[j1,k1]:=c[j,k];

end;

if b[j1,k1]>nx then

begin

nx:=b[j1,k1];tx:=c[j1,k1];

end;

if nx=b[j1,k1] then

begin

if c[j1,k1]<tx then tx:=c[j1,k1];

end;

end;

end;

end;

end;

write(tx);

end.

查看更多回复
提交回复