Cod sursa(job #1199567)
Utilizator | Reality cojocarugabi | Data | 19 iunie 2014 17:25:14 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 80 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.94 kb |
var m:array[0..1,0..10000] of longint;
x,y:array[1..5000] of longint;
i,j: longint;
k,l: longint;
fi,fo: text;
a,b,au: longint;
function max(x,y:longint):longint;
begin
if x>=y then max:=x else max:=y;
end;
begin
assign(fi,'rucsac.in');
reset(fi);
assign(fo,'rucsac.out');
rewrite(fo);
readln(fi,k,l);
a:=0;b:=1;
for i:=1 to k do
readln(fi,x[i],y[i]);
for i:=1 to l do m[a,i]:=0;
for i:=1 to k do begin
for j:=1 to l do
if (j-x[i])>=0 then
m[b,j]:=max(m[a,j],m[a,j-x[i]]+y[i])
else
m[b,j]:=m[a,j];
au:=a;
a:=b;
b:=au;
end;
close(fi);
writeln(fo,m[0,l]);
close(fo);
end.