1 条题解
-
1
#include<bits/stdc++.h> using namespace std; int n,d; struct node{ double x1,x2; bool dis=0; }pt[1055]; bool cmp(node a,node b){ return a.x2<b.x2; } int ans=0; int main(){ cin>>n>>d; for(int i=1;i<=n;i++){ double p,q; cin>>p>>q; if(q>d){ cout<<-1<<endl; return 0; } double c=sqrt(d*d-q*q); pt[i].x1=p-c; pt[i].x2=p+c; } sort(pt+1,pt+n+1,cmp); for(int i=1;i<=n;i++){ if(pt[i].dis)continue; ans++; pt[i].dis=1; for(int j=1;j<=n;j++){ if(!pt[j].dis&&pt[i].x2>=pt[j].x1){ pt[j].dis=1; } } } cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 326
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者