| ||||||||||
| 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 | |||||||||
哪位大哥帮忙指正一下,不胜感激#include <stdio.h>
#include <math.h>
#define Pi 3.1415926
double angle[160]={0};
main()
{
int ox,oy,x,y;
int n,i,j,cnt,max,temp;
double R;
scanf("%d %d %lf",&ox,&oy,&R);
while(R>0){
scanf("%d",&n);
cnt=0;
for(i=0;i<n;i++){
scanf("%d %d",&x,&y);
if(sqrt((x-ox)*(x-ox)+(y-oy)*(y-oy))<=R){
if(x==ox&&y>oy)
angle[i]=Pi/2;
if(x==ox&&y<oy)
angle[i]=Pi/2*3;
if(y==oy&&x<ox)
angle[i]=Pi;
if(y==oy&&x>ox)
angle[i]=0;
if(x>ox&&y>oy)
angle[i]=atan((double)(y-oy)/(double)(x-ox));
if(x>ox&&y<oy)
angle[i]=2*Pi-atan((double)(oy-y)/(double)(x-ox));
if(x<ox&&y<oy)
angle[i]=Pi+atan((double)(oy-y)/(double)(ox-x));
if(x<ox&&y>oy)
angle[i]=Pi-atan((double)(y-oy)/(double)(ox-x));
cnt++;
}
}
max=0;
for(i=0;i<cnt;i++){
temp=0;
for(j=0;j<cnt;j++){
if(angle[i]<=Pi){
if(angle[j]>=angle[i]&&angle[j]<=angle[i]+Pi)
temp++;
}
else{
if((angle[j]>=angle[i]&&angle[j]<2*Pi)||(angle[j]>=0&&angle[j]<=angle[i]-Pi))
temp++ ;
}
}
if(max<temp)
max=temp;
}
printf("%d\n",max);
scanf("%d %d %lf",&ox,&oy,&R);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator