#include <map>
#include <set>
#include <list>
#include <cmath>
#include<cctype>
#include <ctime>
#include <deque>
#include <stack>
#include <queue>
#include <cstdio>
#include <string>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define PI 3.1415926535897932626
using namespace std;
int gcd(int a, int b)
{
return a % b == 0 ? b : gcd(b, a % b);
}
typedef struct node
{
int x,y;
}Node;
Node src[710];
int N;
char res[15];//这个数组是用来转换输入的
int max1;
inline void input()
{
N=0;
while (gets(res))
{
if (res[0]=='\0') break;
sscanf(res,"%d%d",&src[N].x,&src[N].y);
N++;
}
}//读入函数
void slove()
{
max1=2;int leap=0;
for (int i=0;i<N;i++)
{
for (int j=i+1;j<N;j++)//每两个点确定直线,接下来判定第三个点
{ leap=2;//注意leap的初始化
for (int k=j+1;k<N;k++)
{
if ((src[j].x-src[i].x)*(src[k].y-src[j].y)==(src[k].x-src[j].x)*(src[j].y-src[i].y)) leap++;
}
if (leap>max1) max1=leap;
}
}
printf("%d\n",max1);
}
int main()
{
int T;
scanf("%d%*c",&T);
gets(res);
while (T--)
{
input();
if (N==1) {printf("1\n");continue;}
if (N==2) {printf("2\n");continue;}
slove();
if (T) putchar('\n');
}
return 0;
}
UVA 270 共线
最新推荐文章于 2018-02-01 11:19:55 发布