WA了因为 没有 while 循环 TLE了因为 while条件 scanf 没加 EOF 之后AC
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <map>
#include <cmath>
using namespace std;
typedef pair<float,float> p;
int l,d,n;
p b[10000];
int cmp(p a,p b)
{
return a.first<b.first;
}
int solve()
{
int cnt=1,i,j;
for(i=1,j=2;j<=n;++j)
{
if(b[j].first > b[i].second)
{
++cnt;
i=j;
}
}
return cnt;
}
int main()
{
while((scanf("%d %d %d",&l,&d,&n))!=EOF)
{
float y,x,xx;
for(int i=1;i<=n;++i)
{
scanf("%f %f",&x,&y);
xx=sqrt(d*d - y*y);
b[i].first = x-xx>0?x-xx:0;
b[i].second = x+xx>l?l:x+xx;
}
sort(b+1,b+1+n,cmp);
printf("%d\n",solve());
}
return 0;
}