阮鹏博 2011-08-16 07:10:00
点我顶贴
收藏
删除
var n,m,r:Longint;
rmb,rp,time:Array[1..100]of Longint;
f,t:Array[0..50,0..50]of Longint;
Procedure Init;
var i:Longint;
begin
readln(n);
for i:=1 to n do
readln(rmb[i],rp[i],time[i]);
readln(m,r);
end;
Procedure Main;
var
i,j,k:Longint;
begin
for i:=1 to n do
for j:=m downto rmb[i] do
for k:=r downto rp[i] do
if f[j,k]<f[j-rmb[i],k-rp[i]]+1 then
begin
f[j,k]:=f[j-rmb[i],k-rp[i]]+1;
t[j,k]:=t[j-rmb[i],k-rp[i]]+time[i];
end
else
if f[j,k]=f[j-rmb[i],k-rp[i]]+1 then
if t[j,k]>t[j-rmb[i],k-rp[i]]+time[i] then
t[j,k]:=t[j-rmb[i],k-rp[i]]+time[i];
writeln(t[m,r]);
end;
Begin
Init;
Main;
End.