Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

一次AC,供后来的兄弟参考:

Posted by bjtu1 at 2008-09-29 11:16:30 on Problem 1106
#include<stdio.h>


typedef  struct{
	int x,y;
}P;
P point1[1001],point2[1001];


int cross(P a,P c,P b){
	return (a.x-b.x)*(c.y-b.y)-(c.x-b.x)*(a.y-b.y);
};

int judge(P a,P b,float r){
	if((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)<=r*r)
		return 1;
	return 0;
};



int main()
{
	int i,j,k;
	float r;
	P a;
	int n,temp,max;


	while(scanf("%d%d%f",&a.x,&a.y,&r)!=EOF){
		if(r<0)
			return 0;
		scanf("%d",&n);
		i=1;
		for(k=1;k<=n;k++){
			scanf("%d%d",&point1[k].x,&point1[k].y);
			if(judge(a,point1[k],r)){
				point2[i].x=point1[k].x;
				point2[i++].y=point1[k].y;
			}
		}
		i--;
         max=0;
		 for(j=1;j<=i;j++){
			 temp=0;
			 for(k=1;k<=i;k++)
				 if(cross(point2[j],a,point2[k])<=0){
					 temp++;
				 }
				 if(2*temp<i)
					 temp=i-temp;
				 if(temp>max)
					 max=temp;
		 }

		 printf("%d\n",max);
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator