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; }