Pagini recente » Cod sursa (job #1911010) | Cod sursa (job #2733208) | Cod sursa (job #1979468) | Cod sursa (job #1452993) | Cod sursa (job #73512)
Cod sursa(job #73512)
Program Energii;
const big=10000001;
var G,W : integer;
EG,CG : array[1..1000] of integer;
C1,C2 : array[1..5000] of longint;
procedure Citeste;
var Intrare : text;
i : integer;
begin
assign(Intrare,'energii.in');
reset(Intrare);
readln(Intrare,G);
readln(Intrare,W);
for i:=1 to G do readln(Intrare,EG[i],CG[i]);
close(Intrare);
end;
function min(a,b : integer) : integer;
begin
if a<b then min:=a else min:=b;
end;
procedure Update(en,cost : integer);
var minim : integer;
begin
minim:=min(en,W);
if C2[minim]>cost then C2[minim]:=cost;
end;
procedure Calculeaza;
var i,j : integer;
begin
for i:=1 to W do C2[i]:=big;
C2[min(W,EG[1])]:=CG[1];
for i:=2 to G do
begin
C1:=C2;
Update(EG[i],CG[i]);
for j:=1 to W do
if C1[j]<big then Update(j+EG[i],C1[j]+CG[i]);
end;
end;
procedure Scrie;
var Iesire : text;
begin
assign(Iesire,'energii.out');
rewrite(Iesire);
if C2[W]<big then write(Iesire,C2[W])
else write(Iesire,-1);
close(Iesire);
end;
begin
Citeste;
Calculeaza;
Scrie;
end.