Pagini recente » Cod sursa (job #3125089) | Cod sursa (job #1856802) | Cod sursa (job #2841921) | Cod sursa (job #1736152) | Cod sursa (job #71316)
Cod sursa(job #71316)
Program Energii;
const mult=2000000;
var G,W : integer;
St,nec: array[1..1000000] of longint;
p : array[1..1000000] of boolean;
pst,min : longint;
procedure Init;
var i : longint;
begin
pst:=0;
for i:=1 to 1000000 do
begin
p[i]:=false;
nec[i]:=mult;
end;
end;
procedure Update(s,c : longint);
begin
if p[s] then
begin
if c<nec[s] then nec[s]:=c;
end
else
begin
p[s]:=true;
pst:=pst+1;
St[pst]:=s;
nec[s]:=c;
end;
end;
procedure Citeste;
var Intrare : text;
i,E,C : integer;
j : longint;
begin
Init;
assign(Intrare,'energii.in');
reset(Intrare);
readln(Intrare,G);
readln(Intrare,W);
for i:=1 to G do
begin
readln(Intrare,E,C);
for j:=1 to pst do Update(E+St[j],C+nec[St[j]]);
Update(E,C);
end;
close(Intrare);
end;
procedure Calculeaza;
var i : longint;
begin
min:=mult;
for i:=W to 1000*G do
if nec[i]<min then min:=nec[i];
if min=mult then min:=-1;
end;
procedure Scrie;
var Iesire : text;
begin
assign(Iesire,'energii.out');
rewrite(Iesire);
write(Iesire,min);
close(Iesire);
end;
begin
Citeste;
Calculeaza;
Scrie;
end.