#2 wyhbb163@2008-09-28 02:19:00
6266
回复
删除
大牛救救我啊
var
g:array[0..100,0..100] of integer;
x:array[1..100,1..3] of longint;
f:array[0..100,0..100] of longint;
t,m,i,j,k,n,p,v:integer;
begin
readln(n,m,t);
for i:=1 to n do begin
read(v);
g[v,0]:=g[v,0]+1;
g[v,g[v,0]]:=i;
read(x[i,1],x[i,2],x[i,3]);
end;
for i:=0 to 100 do
for k:=t downto 0 do
for p:=m downto 1 do
for j:=1 to g[i,0] do begin
n:=g[i,j];
if (x[n,1]<=k)and(x[n,2]<p) then begin
if f[k-x[n,1],p-x[n,2]]+x[n,3]>f[k,p] then f[k,p]:=f[k-x[n,1],p-x[n,2]]+x[n,3];
end;
end;
writeln(f[t,m]);
end.