本 文 思 路 完 全 来 源 于 本文思路完全来源于 starlet_kiss

− − − − − − − − − − 分 割 线 − − − − − − − − − − − − − \color{Red}{----------分割线-------------} 线

开 始 a , b , x = a b s ( a − b ) 开始a,b,x=abs(a-b) a,b,x=abs(ab)

现 在 要 求 ± 1 ± 2 ± 3.... ± n = x 现在要求\pm1\pm2\pm3....\pm{n}=x ±1±2±3....±n=x

一 开 始 我 们 一 直 加 直 到 超 过 x 时 停 下 一开始我们一直加直到\color{Red}{超过x时停下} x

1 + 2 + 3... + n = x + y ( 刚 好 超 过 了 x , 加 到 了 x + y ) 1+2+3...+n=x+y(刚好超过了x,加到了x+y) 1+2+3...+n=x+y(x,x+y)

Ⅰ . 当 y 为 偶 数 , 那 么 前 面 有 一 次 y 2 我 们 不 加 , 而 是 减 去 它 , 就 得 到 了 x \color{Orange}{Ⅰ.当y为偶数,那么前面有一次\frac{y}{2}我们不加,而是减去它,就得到了x} .y,2y,,x

这 种 情 况 下 , 只 需 要 操 作 n 次 即 可 ( 一 定 最 优 ) 这种情况下,只需要操作n次即可(一定最优) ,n()

Ⅱ . y 为 奇 数 , 此 时 y 不 能 被 2 整 除 \color{Green}{Ⅱ.y为奇数,此时y不能被2整除} .y,y2

那 我 们 就 构 造 出 新 的 y 为 偶 数 那我们就构造出新的y为偶数 y

Ⅱ . 1.   当 n + 1 为 奇 数 时 Ⅱ.1. \ 当n+1为奇数时 .1. n+1

1 + 2 + 3... + ( n + 1 ) = x + y ( 此 时 y 被 构 造 成 了 偶 数 ) 1+2+3...+(n+1)=x+y(此时y被构造成了偶数) 1+2+3...+(n+1)=x+y(y)

那 么 这 时 候 需 要 操 作 n + 1 次 那么这时候需要操作n+1次 n+1

Ⅱ . 2.   当 n + 1 为 偶 数 , 那 么 n + 2 为 奇 数 Ⅱ.2.\ 当n+1为偶数,那么n+2为奇数 .2. n+1n+2

1 + 2 + 3... + ( n + 2 ) = x + y ( 此 时 y 被 构 造 成 了 偶 数 ) 1+2+3...+(n+2)=x+y(此时y被构造成了偶数) 1+2+3...+(n+2)=x+y(y)

那 么 此 时 需 要 操 作 n + 2 次 那么此时需要操作n+2次 n+2

#include <bits/stdc++.h>
using namespace std;
#define int long long 
int n,m,t;
signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		int x=abs(n-m);
		int l=0,r=1e6,mid;
		while(r>l)
		{
			mid=(l+r)/2;
			if(mid*(mid-1)/2+mid>=x)	r=mid;
			else	l=mid+1;
		}
		int y=r*(r-1)/2+r-x;
		if(y%2==0)	cout<<r<<endl;
		else if((r+1)%2==1)	cout<<r+1<<endl;
		else	cout<<r+2<<endl;
	}
}