比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 AAAAAAAAAA
题目名称 Asm.Def找燃料 最终得分 100
用户昵称 fyb 运行时间 0.023 s
代码语言 C++ 内存使用 0.23 MiB
提交时间 2015-11-04 08:47:29
显示代码纯文本
#include <cstdio>

using namespace std;

#define NMAX 100

int x[NMAX],y[NMAX];

bool is_on_line(int p0,int p1,int p){
//	printf("%d %d %d %d\n",p0+1,p1+1,p+1,((y[p]-y[p0])*(x[p1]-x[p0])-(x[p]-x[p0])*(y[p1]-y[p0])));
	return ((y[p]-y[p0])*(x[p1]-x[p0])==(x[p]-x[p0])*(y[p1]-y[p0]));
}

int main(){
	int n;
	int num,mx=1;
	int i,j,k;

	freopen("asm_fuel.in","r",stdin);
	freopen("asm_fuel.out","w",stdout);

	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d%d",x+i,y+i);

	for(i=1;i<n;i++)
		if(x[i-1]==x[i]&&y[i-1]==y[i])mx++;

	for(i=0;i<n;i++)
		for(j=i+1;j<n;j++){
			if(x[i]==x[j]&&y[i]==y[j])continue;
			num=0;
			for(k=0;k<n;k++)
				if(is_on_line(i,j,k))num++;
//			if(num==6)printf("%d %d\n",i,j);
			if(num>mx)mx=num;
		}

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