Cod sursa(job #1677420)
| Utilizator | Data | 6 aprilie 2016 16:01:16 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | fpc | Status | done |
| Runda | Arhiva de probleme | Marime | 0.95 kb |
program energii;
function max(a,b:integer):integer;
begin
if a>b then max:=a else max:=b;
end;
var d:array [0..1001,0..5001] of integer;
eg,cg:array [0..1001] of integer;
w,g,i,j:integer;
fi,fo:text;
begin
assign(fi,'energii.in');
assign(fo,'energii.out');
reset(fi);
rewrite(fo);
readln(fi,g,w);
for i:=1 to g do readln(fi,eg[i],cg[i]);
for i:=0 to w do d[0,i]:=0;
for i:=1 to g do begin
for j:=0 to w do begin
if eg[i]<=j then d[i,j]:=max(d[i-1,j],d[i-1,j-eg[i]]+cg[i])
else d[i,j]:=d[i-1,j];
end;
end;
writeln;
writeln(fo,d[g,w]);
close(fi);
close(fo);
end.
