AcWing 112. 雷达设备
原题链接
中等
作者:
蒻
,
2021-07-23 23:38:26
,
所有人可见
,
阅读 160
C++ 代码
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
struct node
{
double st,ed;
}po[1010];
bool cmp(node a,node b)
{
return a.ed<b.ed;
}
int main()
{
int n,d;
cin>>n>>d;
bool su=true;
for(int i=0;i<n;i++)
{
int x,y;
cin>>x>>y;
if(y>d)
{
su=false;
break;
}
auto len=sqrt(d*d-y*y);
po[i].st=x-len;
po[i].ed=x+len;
}
if(!su)
{
cout<<"-1"<<endl;
}
else
{
sort(po,po+n,cmp);
int res=0;
double last=-1e10;
for(int i=0;i<n;i++)
{
if(po[i].st>last+1e-6)
{
res++;
last=po[i].ed;
}
}
cout<<res<<endl;
}
//详细移步y总题解,详细贪心