发布题解

raoyueyang  •  2年前


include<bits/stdc++.h>

using namespace std;

int n,d,ans,cnt=1,flag=0; struct node { double x,y; bool vis=0; } a[1005]; bool cmp(node p,node q) { return p.y<q.y; } int main() { while(cin>>n>>d) {

if(n==0 && d==0)
break;
for(int i=0; i<n; i++)
{
  double p,q,m;
  cin>>p>>q;
  if(q>d)
  {
    flag=1;
  }
  m=sqrt(d*d-q*q);
  a[i].x=p-m,a[i].y=p+m;
}
sort(a,a+n,cmp);
for(int i=0; i<n; i++)
{
  if(a[i].vis)
  continue;
  ans++;
  a[i].vis=1;
  for(int j=0; j<n; j++)
  if(!a[j].vis&&a[i].y>=a[j].x)
  a[j].vis=1;
}
printf("Case %d: %d\n",cnt++,flag?-1:ans);
memset(a,0,sizeof(a));
flag=n=d=ans=0;

} return 0; }`


评论: