Pagini recente » Cod sursa (job #1763511) | Cod sursa (job #878616) | Cod sursa (job #2851149) | Cod sursa (job #2278201) | Cod sursa (job #163436)
Cod sursa(job #163436)
program vanatori;
type vect = record
c,v : longint;
end;
var A : array [1..16] of vect;
sol,poz : array [0..16] of longint;
m,j,T,k : longint;
n1,n2,i,n : shortint;
f,g : text;
ok : boolean;
procedure list(li,ls:longint);
var i,j,i0,j0,p : longint;
d : vect;
begin
i := li;
j := ls;
i0 := 0;
j0 := -1;
while i<j do begin
if A[i].c>A[j].c then begin
d := A[i];
A[i] := A[j];
A[j] := d;
p := i0;
i0 := -j0;
j0 := -p;
end;
i := i+i0;
j := j+j0;
end;
k := i;
end;
procedure quick(li,ls:longint);
begin
if li<ls then begin
list(li,ls);
quick(li,k-1);
quick(k+1,ls);
end;
end;
begin
assign(f,'vanatoare.in');
reset(f);
assign(g,'vanatoare.out');
rewrite(g);
readln(f,n,T);
for i := 1 to n do
readln(f,A[i].c,A[i].v);
quick(1,n);
n1 := 0;
for i := 1 to n do
if A[i].c<>sol[n1] then begin
inc(n1);
sol[n1] := A[i].c;
end;
ok := true;
repeat
if A[1].c+A[1].v>T then ok := false
else A[1].c := A[1].c+A[1].v;
quick(1,n);
n2 := 0;
for i := 1 to n do
if A[i].c<>poz[n2] then begin
inc(n2);
poz[n2] := A[i].c;
end;
if n2<n1 then begin
n1 := n2;
sol := poz;
end;
until not ok;
writeln(g,n1);
for i := 1 to n1 do
write(g,sol[i],' ');
close(f);
close(g);
end.