题目大意:给定N个坐标,求共线的坐标数目最大值
题目分析:直接利用共线,求解
代码如下:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n,ans=0,sum=0;
struct Node
{
int x,y;
};
Node p[750];
int main()
{
while(scanf("%d",&n)!=EOF)
{
if(n==0)
break;
ans=0;
for(int i=1;i<=n;i++)
cin>>p[i].x>>p[i].y;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
sum=2;
for(int k=j+1;k<=n;k++)
{
int a=(p[k].y-p[j].y)*(p[j].x-p[i].x);
int b=(p[k].x-p[j].x)*(p[j].y-p[i].y);
if(a==b)
sum++;
}
if(sum>ans)
ans=sum;
}
cout<<ans<<endl;
}
//while(1);
return 0;
}