Pagini recente » Cod sursa (job #2049903) | Cod sursa (job #500000) | Cod sursa (job #565102) | Cod sursa (job #623685) | Cod sursa (job #461422)
Cod sursa(job #461422)
program energii;
type rec=record
prod,cost:longint;
end;
var a:array[0..5001] of rec;
b:array[0..5001] of longint;
f,g:text;
n,i,j,final,max:longint;
begin
assign(f,'energii.in'); reset(f);
assign(g,'energii.out'); rewrite(g);
readln(f,n); readln(f,final);
for i:=1 to n do read(f,a[i].prod,a[i].cost); {cantit/cost}
for i:=1 to final do b[i]:=2500000;
b[0]:=0; max:=0;
for i:=1 to n do
for j:=max downto 0 do begin
if (b[j]>=0) then begin
if (a[i].prod+j>=final) then
if (b[final]>=a[i].cost+b[j]) then begin
b[final]:=a[i].cost+b[j];
max:=final;
end
else
else if (b[j+a[i].prod]>=a[i].cost+b[j]) then begin
b[j+a[i].prod]:=a[i].cost+b[j];
if a[i].prod+j>max then max:=a[i].prod+j;
end
else
end;
end;
if b[final]=2500000 then writeln(g,-1) else writeln(g,b[final]);
close(f); close(g);
end.