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

posted @ 2011-06-17 23:50  KOKO's  阅读(330)  评论(0编辑  收藏  举报