AcWing 112. 雷达设备
原题链接
中等
作者:
睡在树上的鱼
,
2023-11-12 16:22:13
,
所有人可见
,
阅读 38
C++ 代码
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N = 1010;
struct range{
double l,r;
bool operator<(const range &W)const {
return r<W.r;
}
}range[N];
int n,d;
int x[N],y[N];
int main(){
cin>>n>>d;
for(int i=0; i<n; i++){
cin>>x[i]>>y[i];
if(y[i]>d) {
cout<<-1;
return 0;
}else{
range[i].l=x[i]-pow((pow(d,2)-pow(y[i],2)),0.5);
range[i].r=x[i]+pow((pow(d,2)-pow(y[i],2)),0.5);
}
}
sort(range,range+n);
int res=1;
double ed=range[0].r;
for(int i=1; i<n; i++){
if(range[i].l>ed){
ed=range[i].r;
res++;
}
}
cout<<res;
return 0;
}