var v,w,s,f:array[0..6001]of longint; i,j,k,n,m:longint; function max(x,y:longint):longint; begin if x>y then exit(x); exit(y); end; begin readln(n,m); for i:=1 to n do readln(v[i],w[i],s[i]); for i:=1 to n do for j:=m downto 0 do for k:=0 to s[i] do begin if j-k*v[i]<0 then break; f[j]:=max(f[j],f[j-k*v[i]]+w[i]*k); end; writeln(f[m]); end. /************************************************************** Problem: 2077 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/