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.