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.