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 |
楼主,你的数据我都过了,然而还是不行啊,代码附上,求助In Reply To:给大家个数据,希望有用 Posted by:mickeychen at 2010-04-14 19:53:06 #include <iostream> #include <math.h> #include <algorithm> #include <stdio.h> #include <string.h> using namespace std; struct sa { double x,y,left,right; }data[1005]; double cmp(const sa&a,const sa&b) { return a.left>b.left; } int main() { sa tmp; int n; double d; int k=1; while(cin>>n>>d) { memset(data,0,sizeof(data)); int sum=1; double maxn=0.0,minn=0.0; if(n==0||d==0) break; for(int i=0;i<n;i++) { cin>>data[i].x>>data[i].y; data[i].left=data[i].x-sqrt(d*d-data[i].y*data[i].y); data[i].right=data[i].x+sqrt(d*d-data[i].y*data[i].y); maxn=max(maxn,data[i].y); minn=min(minn,data[i].y); // cout<<maxn<<endl; } // cout<<maxn<<endl; sort(data,data+n,cmp); tmp=data[0]; if(maxn>d||d<=0||minn<0) { printf("Case "); printf("%d",k); printf(": "); cout<<-1<<endl; k++; //break; continue; } else { for(int i=0;i<n;i++) if(sqrt((tmp.left-data[i].x)*(tmp.left-data[i].x)+data[i].y*data[i].y)>d) { sum++; tmp=data[i]; } } printf("Case "); printf("%d",k); printf(": "); cout<<sum<<endl; k++; // for(int i=0;i<n;i++) // cout<<data[i].left<<endl; } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator