比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 AAAAAAAAAA
题目名称 Asm.Def找燃料 最终得分 100
用户昵称 WAHT 运行时间 0.035 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2015-11-04 09:05:57
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;

int read()
{
	int x=0,f=1;
	char ch=getchar();
	while(ch>'9'||ch<'0'){ if(ch=='-') f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){ x=x*10+ch-'0';ch=getchar();}
	return x*f;
}

struct my
{
	double x,y;
}a[110];
int n;
int main()
{
	freopen("asm_fuel.in","r",stdin);
	freopen("asm_fuel.out","w",stdout);
	n=read();
	for(int i=1;i<=n;i++)
	{
		int x=read(),y=read();
		a[i].x=x,a[i].y=y;
	}
	
	int ans=0;
	for(int i=1;i<=n;i++)
		for(int j=i+1;j<=n;j++)
		{	
			int num=0,f=0;
			double K=0,b=0;
			if(a[i].x!=a[j].x)	f=1,K=(a[i].y-a[j].y)/(a[i].x-a[j].x);
			b=a[i].y-K*a[i].x;
			for(int k=1;k<=n;k++)
				if(i==k||j==k) continue;
			else
			{
				if(a[i].x==a[k].x&&a[i].y==a[k].y) num++;
				else if(!f&&a[i].x==a[k].x)	num++;
				else if(f&&a[i].x==a[k].x)	continue;
				else
				{
					double k2=(a[i].y-a[k].y)/(a[i].x-a[k].x);
					double b2=a[i].y-k2*a[i].x;
					if((k2==K)&&(b2==b)) num++;
				}
			}
			ans=max(ans,num);
		}
		
	cout<<ans+2<<endl;
	return 0;
}