Cod sursa(job #538642)

Utilizator fzsolt93Fazekas Zsolt fzsolt93 Data 21 februarie 2011 19:41:37
Problema Energii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.7 kb
program numere;
const inf=700000;
var mat:array[0..1010,0..5010] of longint;
v1,v2:array[1..1010] of longint;
w,g2,i,j:integer;
f,g:text;
begin
assign(f,'energii.in');
reset(f);
assign(g,'energii.out');
rewrite(g);
readln(f,g2);
readln(f,w);
for i:=1 to g2 do
begin
readln(f,v1[i],v2[i]);
end;
for i:=1 to w do
mat[0,i]:=inf;
for i:=1 to g2 do
begin
for j:=1 to w do
begin
if (j<v1[i]) then
begin
if (mat[i-1,j]<v1[i]) then mat[i,j]:=mat[i-1,j]
else
sol[i,j]:=v2[i];
end
else
if (mat[i-1,j]<mat[i-1,j-v1[i]]+v2[i]) then
sol[i,j]:=sol[i-1,j]
else
mat[i,j]:=mat[i-1,j-v1[i]]+v2[i];
end;
end;
if (mat[g2,w]=1000) then writeln(g,-1)
else
writeln(g,sol[g2,w]);
close(g);
close(f);
end.