Pagini recente » Cod sursa (job #881299) | Cod sursa (job #573360) | Cod sursa (job #1870584) | Cod sursa (job #2698786) | Cod sursa (job #1884411)
Program P1;
uses math;
type val=record
w,p:word;
end;
var a:array[1..5100] of val;
m:array[1..5000,1..10000] of word;
n,g,j,i,rs:word;
fi,fo:text;
begin
{ assign(fi,'rucasc.in');
reset(fi);
assign(fo,'rucsac.out');
rewrite(fo);}
readln(n,g);
//readln(fi);
For i:=1 to n do begin
readln(a[i].w,a[i].p);
//readln(fi);
end;
for j:= 0 to g do
m[1, j] := 0;
for i := 1 to n do
for j := 0 to g do
if a[i].w > j then
m[i, j] := m[i-1, j] else
m[i, j] := max(m[i-1, j], m[i-1, j-a[i].w] + a[i].p) ;
{For i:=1 to g do
m[i]:=0;
rs:=0;
For i:=1 to n do
For j:=g-a[i].w downto 1 do
If m[j+a[i].w]<(m[j]+a[i].p) then begin
m[j+a[i].w]:=m[j]+a[i].p;
If m[j+a[i].w]>rs then rs:=m[j+a[i].w];
end;}
writeln(m[n,g]);
//close(fo);
readln;
end.