Pagini recente » Cod sursa (job #11636) | Cod sursa (job #2369814) | Cod sursa (job #92642) | Cod sursa (job #2258603) | Cod sursa (job #1044718)
type vec=array[1..5010] of integer;
var gen,watt,i,cmin:integer;
w,c,d:vec;
f,g:text;
function test(x,n:integer):byte;
var i:integer;
begin
test:=0;
for i:=1 to n do
if d[i]=x then begin
test:=1;
break;
end;
end;
function ins(pas,poz,ener,cost:integer):integer;
var i,min,p:integer;
begin
d[pas]:=poz;
if (ener>=watt) then begin
if (cost<cmin) then cmin:=cost;
end
else begin
min:=32000;
for i:=1 to gen do
if (test(i,pas)=0) then
if c[i]<min then begin
min:=c[i];
p:=i;
end;
if (c[p]+cost<cmin) then
ins(pas+1,p,w[p]+ener,c[p]+cost);
end;
end;
function backtrack:integer;
var i:integer;
begin
for i:=1 to gen do
if c[i]<cmin then ins(1,i,w[i],c[i]);
end;
begin
assign(f,'energii.in' );reset(f);
assign(g,'energii.out');rewrite(g);
readln(f,gen);
readln(f,watt);
for i:=1 to gen do readln(f,w[i],c[i]);
close(f);
cmin:=32000;
backtrack;
write(g,cmin);
close(g);
end.