846
能推出个规律来,答案每增加1,相应的差增的数有规律:
1-1
2-1
3-2
4-2
5-3
6-3
7-4
8-4
然后实现就行了
//============================================================================
// Name : 846.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
#define MAX 2147483647
long long f[200000];
int num, a, b, t, N;
int main() {
f[0] = 0;
f[1] = 1;
for(int i = 2;i < 200000;i++){
f[i] = f[i-1]+ceil(i*1.0/2);
// printf("%lld\n", f[i]);
if(f[i] >= MAX){
num = i;
break;
}
}
scanf("%d", &N);
while(N--){
scanf("%d%d", &a, &b);
t = a>b?a-b:b-a;
if(t == 0){
printf("0\n");
continue;
}
for(int i = 0;i < num;i++){
if(t > f[i]&&t <= f[i+1]){
printf("%d\n", i+1);
break;
}
}
}
return 0;
}

浙公网安备 33010602011771号