#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define eps 1e-9
using namespace std;
struct node
{
double L,R;
}Water[11000];
bool cmp(const struct node &a,const struct node &b)
{
return a.L<b.L;
}
int main()
{
int n;
double w,l;
while(~scanf("%d%lf%lf",&n,&l,&w))
{
int tot=0;
for(int i=1;i<=n;i++)
{
double m,r;
scanf("%lf%lf",&m,&r);
if((w/2-r)>eps)
continue;
Water[tot].L=m-sqrt(r*r-w*w/4);
Water[tot].R=m+sqrt(r*r-w*w/4);
tot++;
}
sort(Water,Water+tot,cmp);
double now=0;
int ans=0,flag=0;
int i,j;
for(i=0;i<tot;i=j)
{
if(Water[i].L>now)
break;
for(j=i+1;j<tot&&Water[j].L<=now;j++)
{
if(Water[j].R>Water[i].R)
i=j;
}
ans++;
now=Water[i].R;
if(now>=l)
{
break;
}
}
if(now>=l)
printf("%d\n",ans);
else
printf("-1\n");
}
}
uva 10382
最新推荐文章于 2019-07-18 12:35:53 发布