讨论 / 源程序
churchill 2008-07-08 19:31:00
点我顶贴 收藏 删除
var

n,i,p,q,max,min,m,r:longint;

rmb,rp,time:array[1..100]of longint;

f,t:array[0..100,0..100]of longint;

begin

readln(n);

for i:=1 to n do

readln(rmb[i],rp[i],time[i]);

readln(m,r);

for i:=1 to n do

for p:=m-rmb[i] downto 0 do

for q:=r-rp[i] downto 0 do

if f[p,q]+1>=f[p+rmb[i],q+rp[i]]

then begin

if f[p,q]+1>max then max:=f[p,q]+1;

if ((t[p,q]+time[i]<t[p+rmb[i],q+rp[i]])and(f[p+rmb[i],q+rp[i]]=f[p,q]+1))or(f[p,q]+1>f[p+rmb[i],q+rp[i]])

then t[p+rmb[i],q+rp[i]]:=t[p,q]+time[i];

f[p+rmb[i],q+rp[i]]:=f[p,q]+1;

end;

min:=999999;

for p:=0 to m do

for q:=0 to r do

if (f[p,q]=max)and(t[p,q]<min)

then min:=t[p,q];

writeln(min);

end.

查看更多回复
提交回复