NKSTEP - Chuyển
Tác giả: RR
Ngôn ngữ: Pascal
{$R+,Q+}
{$Mode objFPC}
uses math;
const
FINP='';
FOUT='';
oo=50001;
var
f1,f2:text;
x,y,i,test,kq,dist:longint;
procedure openF;
begin
assign(f1,FINP); reset(f1);
assign(f2,FOUT); rewrite(f2);
end;
procedure closeF;
begin
close(f1);
close(f2);
end;
function find:longint;
var
l,r,mid,kq:longint;
begin
l:=1; r:=oo; kq:=0;
repeat
mid:=(l+r)>>1;
if sqr(mid)<=dist then
begin
kq:=mid;
l:=mid+1;
end
else r:=mid-1;
until l>r;
exit(kq);
end;
procedure solve;
var
x,i:longint;
begin
x:=find;
dist-=sqr(x); kq:=x<<1-1;
i:=x;
while dist>0 do
begin
if dist>=i then begin dist-=i; kq+=1; end
else dec(i);
end;
end;
begin
openF;
read(f1,test);
for test:=1 to test do
begin
read(f1,x,y);
if x=y then
begin
writeln(f2,0);
continue;
end;
dist:=abs(x-y);
solve;
writeln(f2,kq);
end;
closeF;
end.