| ||||||||||
| 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 | |||||||||
wa到死,自测一百组数据,怎么回事啊,跪求高手#include<stdio.h>
#include<stdlib.h>
const int maxN=700;
typedef struct doue
{
int x,y;
bool operator==(doue b)
{
if(x==b.x&&y==b.y)
return 1;
return 0;
}
}doue;
doue pos[maxN],slope[maxN];
int gcd(int a,int b)
{
int temp;
while(b)
{
temp=b;
b=a%b;
a=temp;
}
return a;
}
int cmp(const void *a,const void *b)
{
if((*(doue*)a).y!=(*(doue*)b).y)
return (*(doue*)a).y-(*(doue*)b).y;
return (*(doue*)a).x-(*(doue*)b).x;
}
int main()
{
freopen("in.txt","r",stdin);
int i,j,N,R,count,ans,k,temp;
while(scanf("%d",&N)!=EOF&&N)
{
for(i=1;i<=N;i++)
scanf("%d%d",&(pos[i].x),&(pos[i].y));
for(i=1,ans=0;i<=N;i++)
{
for(j=1,k=1;j<=N;j++)
{
if(i!=j)
{
slope[k].x=pos[i].x-pos[j].x;
slope[k].y=pos[i].y-pos[j].y;
temp=gcd(slope[k].x>0?slope[k].x:-slope[k].x,slope[k].y>0?slope[k].y:-slope[k].y);
slope[k].x/=temp;
slope[k].y/=temp;
if(slope[k].y<0)
{
slope[k].x=-slope[k].x;
slope[k].y=-slope[k].y;
}
k++;
}
}
qsort(slope,k-1,sizeof(slope[0]),cmp);
if(k-1)
{
for(j=2,count=1;j<N;j++)
if(slope[j]==slope[j-1])
{
count++;
}
else
{
if(ans<count)ans=count;
count=1;
}
if(ans<count)ans=count;
}
}
printf("%d\n",ans+1);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator