Pagini recente » Cod sursa (job #345650) | Cod sursa (job #2533346) | Cod sursa (job #1812742) | Cod sursa (job #2587368) | Cod sursa (job #148362)
Cod sursa(job #148362)
//energii
var g,w,i,j,max,cost:integer;
ener,inf:longint;
a:array[0..5050] of longint;
gen:array[1..1050] of record eng,cst:integer; end;
procedure scriere(x:longint);
var f:text;
begin
assign(f,'energii.out'); rewrite(f);
writeln(f,x);
close(f);
end;
procedure citire;
var f:text;
i,j,x,y:integer;
s:longint;
begin
s:=0;
assign(f,'energii.in');
reset(f);
readln(f,g);
readln(f,w);
for i:=1 to g do begin
readln(f,x,y);
gen[i].eng:=x;
gen[i].cst:=y;
s:=s+x;
end;
close(f);
if s<w then begin
scriere(-1);
halt;
end;
end;
begin
citire;
//fillchar(a,4*w+4,255);
for i:=0 to w do
a[i]:=20000000;
inf:=a[0];
a[0]:=0;
max:=0;
for i:=1 to g do begin
for j:=max downto 0 do begin
if a[j]<>inf then begin
cost:=a[j]+gen[i].cst;
ener:=( j +gen[i].eng);
if ener>w then ener:=w;
if ener>max then max:=ener;
if a[ener]>cost then
a[ener]:=cost;
end;
end;
end;
scriere(a[w]);
end.