1278B - A and B
题意:给定两数字ab,第i次操作可以将i加在任意一个上。问使ab相等的最小操作数是多少。
贪心把所有放在一边,让i×(i+1)/2大于等于差值。如果相减使偶数,就意味着可以从所有数中拿出一个放在另一个上,使两数相等。不行就向下找,不是直接加一
LL a,b;
int main(){
int t=ird();
while(t--){
a=lrd();b=lrd();
if(a>b)
swap(a,b);
int ans=0;
LL d;
while(a<b){
ans++;
a+=ans;
}
while(a!=b){
d=a-b;
if(d%2==0&&d/2<=ans*(ans+1)/2){
break;
}
else{
ans++;
a+=ans;
}
}
cout<<ans<<endl;
}
return 0;
}
int main(){
int t;
cin>>t;
while(t--){
int a,b;
cin>>a>>b;
if(a<b)
swap(a,b);
a-=b;
int ans;
for(int i=0;;i++){
int tt=i*(i+1)/2;
if(tt>=a&&(tt-a)%2==0){
cout<<i<<endl;
break;
}
}
}
return 0;
}