Pagini recente » Cod sursa (job #1877907) | Cod sursa (job #539336) | Cod sursa (job #2651852) | Cod sursa (job #2352393) | Cod sursa (job #523196)
Cod sursa(job #523196)
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.