# include <stdio.h>
# include <algorithm>
using namespace std;
const double inf=1e20;
struct node
{
int x,y;
}vex[709];
double kk[709];
double kkkk(node a,node b)
{
if(a.x==b.x) return inf;
return (1.0)*(a.y-b.y)/(a.x-b.x);
}
int main ()
{
int n;
int mmax=0,sum=1;
while(scanf("%d",&n)!=EOF)
{
mmax=0;
if(n==0) break;
for(int i=0;i<n;i++)
{
scanf("%d%d",&vex[i].x,&vex[i].y);
}
int cnt=0;
for(int i=0;i<n;i++)
{
cnt=0;
for(int k=i+1;k<n;k++)
{
kk[cnt++]=kkkk(vex[i],vex[k]);
}
sort(kk,kk+cnt);
sum=1;
//printf("%d\n",cnt);
for(int k=1;k<cnt;k++)
{
//printf("%lf\n",kk[k]);
if(kk[k]==kk[k-1])
sum++;
else
{
mmax = sum > mmax ? sum : mmax;
sum=1;
}
}
mmax = sum > mmax ? sum : mmax;
}
printf("%d\n",mmax+1);
}
return 0;
}
按照斜率排序 注意斜率不存在的情况
poj 1118
最新推荐文章于 2019-04-19 17:59:20 发布