uva 10382

来源:互联网 发布:java中注解有几种 编辑:程序博客网 时间:2024/05/16 21:46
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define eps  1e-9using 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);elseprintf("-1\n");}} 

原创粉丝点击