1 solutions
-
0
#include<bits/stdc++.h> using namespace std; typedef pair<double,double> PDD; #define l first #define r second const int N=1010; PDD range[N]; bool cmp(PDD a,PDD b) { return a.r<b.r; } int main() { int n,d; cin>>n>>d; for(int i=0;i<n;i++) { int x,y; cin>>x>>y; if(y>d) { cout<<"-1"<<endl; return 0; } double len=sqrt(d*d-y*y); range[i]={x-len,x+len}; //得到可以覆盖当前小岛的雷达可安装范围 } sort(range,range+n,cmp); //从小到大排序 int res=0; double ed=-2e9; for(int i=0;i<n;i++) { if(range[i].l>=ed) { res++; ed=range[i].r; } } cout<<res; return 0; }
- 1
Information
- ID
- 248
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 5
- Accepted
- 4
- Uploaded By