Cod sursa(job #523196)

Utilizator 05_YohnE1 La5c01 05_Yohn Data 17 ianuarie 2011 13:18:35
Problema Energii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
const inf=30000;

var c:array[0..1,0..100]of integer;
e,cost:array[1..100]of integer;
i,j,g,en,EnMax,n,m:integer;

function min(a,b:integer):integer;
begin
if a<b then min:=a
   else min:=b;
end;

function max(a,b:integer):integer;
begin
if a>b then max:=a
   else max:=b;
end;

begin
assign(input,'energii.in');
reset(input);
assign(output,'energii.out');
rewrite(output);
read(g);
read(en);
for i:=1 to g do begin
    read(e[i],cost[i]);
    j:=j+e[i];
end;
if j<en then write(-1)
else begin

c[0,0]:=0;
for i:=1 to j do c[0,i]:=inf;
n:=1; EnMax:=0;
for i:=1 to g do begin
    EnMax:=EnMax+e[i];
    EnMax:=min(EnMax,10000);
    for j:=e[i] to max(en,EnMax) do
        c[n,j]:=min(c[n-1,j],c[n-1,j-e[i]]+cost[i]);

    for j:=1 to max(en,EnMax) do c[n-1,j]:=c[n,j];
end;
m:=inf;
for i:=en to EnMax do m:=min(m,c[0,i]);
write(m);
end;
close(output);
end.