Pagini recente » Cod sursa (job #2341388) | Cod sursa (job #2547374) | Cod sursa (job #945662) | Cod sursa (job #259342) | Cod sursa (job #186547)
Cod sursa(job #186547)
program energii;
var f,g:text;
e,c:array[1..1002]of longint;
v:array[1..1002]of 0..1;
n,i,w,min,energie,cost,ultim,aux:longint;
procedure ordonare;
var i,j,min1,min2,poz:longint;
begin
for i:=1 to n-1 do
begin
min1:=e[i]; poz:=i; min2:=c[i];
for j:=i+1 to n do
if e[j]<min1 then
begin
min1:=e[j]; poz:=j; min2:=c[j];
end;
e[poz]:=e[i]; c[poz]:=c[i];
e[i]:=min1; c[i]:=min2;
end;
end;
procedure bkt;
var i:longint;
begin
if energie>=w then
if cost<min then
min:=cost else
else begin
for i:=1 to n do
if (v[i]=0) and (e[i]<=ultim) and (cost+c[i]<min) then
begin
energie:=energie+e[i];
cost:=cost+c[i];
v[i]:=1;
aux:=ultim;
ultim:=e[i];
bkt;
energie:=energie-e[i];
cost:=cost-c[i];
v[i]:=0;
ultim:=aux;
end;
end;
end;
begin
assign(f,'energii.in');
reset(f);
readln(f,n);
readln(f,w);
min:=maxlongint;
for i:=1 to n do
begin
readln(f,e[i],c[i]);
if e[i]>=w then
if c[i]<min then
min:=c[i];
end;
ordonare;
ultim:=maxlongint;
bkt;
assign(g,'energii.out');
rewrite(g);
if min<>maxlongint then
write(g,min) else
write(g,'-1');
close(g);
end.