Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:看不出哪里有问题,求救啊In Reply To:看不出哪里有问题,求救啊 Posted by:894212550 at 2013-11-14 16:13:32 #include "iostream" #include "cstdio" #include "algorithm" #include "cmath" using namespace std; struct area{ double x,y; double l,r; }island[1001]; int cmp(const void* a,const void* b){ area * x = (area*)a; area * y = (area*)b; if (fabs(x->l - y-> l) < 0.00001) return 0; else if (x->l < y->l) return -1; return 1; } int rid,least,out; double temp_r; int account(double xx,double yy,int i){ if(rid<=0) return 0; double temp=rid*rid-yy*yy; if(temp<0) return 0; temp=sqrt(temp); island[i].l=xx-temp; island[i].r=xx+temp; return 1; } int main(){ int count; int i,n=0; while(scanf("%d%d",&count,&rid) && (count || rid)){ for(i=0;i<count;i++){ scanf("%lf%lf",&island[i].x,&island[i].y); } for(i=0;i<count;i++){ out=account(island[i].x,island[i].y,i); if(!out) break; } if(!out) least=-1; else{ qsort(island,count, sizeof(area),cmp); i=0;least=1; temp_r=island[i].r; while(i<count){ if (temp_r - island[i].r>0.000000001) temp_r = island[i].r; if (island[i].l - temp_r > 0.00000001) { temp_r=island[i].r; least++; } i++; } } printf("Case %d: %d\n",++n,least); } return 0; } 问题:d=0时 temp_r应该是double Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator