www.pudn.com > TJU.rar > ac1029.pas
program tju1029;
var
d,ans:array[0..99]of cardinal;
n,i,a,b,depth,t:cardinal;
succeed:boolean;
function min(a,b:cardinal):cardinal;
begin
if ab then max:=a else max:=b;
end;
function gcd(a,b:cardinal):cardinal;
var
t:cardinal;
begin
if a1) or (b<=d[l-1]) or (b>=ans[l]) then exit;
ans:=d;ans[l]:=b;
succeed:=true;
end
else
for i:=max(d[l-1]+1,trunc(b/a)+1) to min(trunc((depth-l+1)/(a/b)+1e-6),ans[depth]-1) do begin
d[l]:=i;ta:=a;tb:=b;
subtract(i);
search(l+1);
a:=ta;b:=tb;
end;
end;
begin
d[0]:=1;
read(n);
for i:=1 to n do begin
fillchar(ans,sizeof(ans),255);
read(a,b);t:=gcd(a,b);a:=a div t;b:=b div t;
depth:=0;
succeed:=false;
repeat
inc(depth);
search(1);
until succeed;
for a:=1 to depth-1 do
write(ans[a],' ');
writeln(ans[depth]);
end;
end.