关闭

1328

标签: POJACM
302人阅读 评论(0) 收藏 举报
分类:
#include<iostream>
#include<cmath>

using namespace std;

const int MAX = 1001;
const int X = 0;
const int Y = 1;

int N = 0;
int D = 0;

double getX(int d, int y);
void quick_sort(double array[MAX][2], int l, int r);

int main()
{

	freopen("input.txt", "r", stdin);
	setbuf(stdout, NULL);

	int test_case = 0;
	bool over = false;
	int answer = 0;

	while(true)
	{

		cin >> N >> D;
		if(N == 0 && D == 0)
		{
			break;
		}

		double Radius[MAX][2] = {0};

		test_case++;
		over = false;
		answer = 1;

		int x, y;
		for(int i = 0; i < N; i++)
		{
			cin >> x >> y;
			if(y > D)
			{
				over = true;
			}
			if(over != true)
			{
				double z = getX(D, y);
				Radius[i][X] = x - z;
				Radius[i][Y] = x + z;
			}
		}
		
		if(over == true)
		{
			cout << "Case " << test_case << ": " << -1 <<endl;
			continue;
		}
	
		quick_sort(Radius, 0, N - 1);

		double right = Radius[0][Y];

		for(int i = 1; i < N; i++)
		{
			if(Radius[i][X] > right)
			{
				answer++;
				right = Radius[i][Y];
			}
			else if(Radius[i][Y] < right)
			{
				right = Radius[i][Y];
			}
		}
		cout << "Case " << test_case << ": " << answer <<endl;
	}

	return 0;
}

double getX(int d, int y)
{
	return sqrt((double)(d * d * 1.0 - y * y * 1.0));
}
void quick_sort(double array[MAX][2], int l, int r)
{
	if(l < r)
	{
		int i = l;
		int j = r;
		double x = array[l][X];
		double y = array[l][Y];
		while(i < j)
		{
			while(i < j && array[j][X] > x)
				j--;
			if(i < j)
			{
				array[i][X] = array[j][X];
				array[i][Y] = array[j][Y];
				i++;
			}
			while(i < j && array[i][X] < x)
				i++;
			if(i < j)
			{
				array[j][X] = array[i][X];
				array[j][Y] = array[i][Y];
				j--;
			}
		}
		array[i][X] = x;
		array[i][Y] = y;
	
		quick_sort(array, l, i - 1);
		quick_sort(array, i + 1, r);
	}
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:47687次
    • 积分:1425
    • 等级:
    • 排名:千里之外
    • 原创:93篇
    • 转载:0篇
    • 译文:0篇
    • 评论:15条
    我的微信公众号
      我的微信公众号
      欢迎大家关注我的微信公众号「林里少年」, 一个安卓手机软件开发的通信人,记录技术点滴,也是摄影爱好者!
    最新评论