Sentinel Prome 2015-08-11 18:23:22
点我顶贴
收藏
删除
var b:array[0..5000]of set of 0..255; f:array[0..5000]of longint;
n,m,j,t,w,s,i:longint;
begin
readln(n,m);
for i:=1 to n do
begin
readln(t,w,s);
if s<>0 then
begin
t:=t*s; w:=w*s;
if t<=m then
begin
for j:=m downto t do
if f[j]<f[j-t]+w then
begin
f[j]:=f[j-t]+w;
b[j]:=b[j-t]+[i];
end;
end;
end;
end;
writeln(f[m]);
for i:=1 to 255 do
if i in b[m] then write(i,' ');
end.