我操你妈雷达覆盖范围可以为负数???????????????????
害的老子卡了一天
下面是ac代码
#include<stdio.h>
#include<algorithm>
#include <utility>
#include <cmath>
using std::pair;
int main()
{
int n = 0;
int d = 0;
double x = 0;
double y = 0;
double flag = 0.0;
int order = 0;
int count = 0;
pair<double, double>* coverage = NULL;
while (true)
{
++order;
scanf("%d %d", &n, &d);
if (n == 0 && d == 0)
break;
coverage = new pair<double, double>[n];
for (int i = 0; i < n; ++i)
{
scanf("%lf %lf", &x, &y);
flag =pow(d,2) - pow(y,2);
if (flag < 0) {
for (int uu = i + 1; uu < n; ++uu)//清空该case后续输入的缓冲区
scanf("%lf %lf", &x, &y);
break;
}
(coverage + i)->first =x+ sqrt(flag);
(coverage + i)->second =x- sqrt(flag);
}
if (flag < 0||d<0)
{
printf("Case %d: -1\n", order);
continue;
}
std::sort(coverage, coverage + n);
count = 1;
flag = coverage->first;
for (int i = 1; i < n; ++i) {
if ((coverage + i)->second > flag) {
++count;
flag = (coverage + i)->first;
}
}
printf("Case %d: %d\n", order, count);
delete[] coverage;
}
return 0;
}