比赛 Asm_Def战记之透明计算网络 评测结果 WWWWTTTTTW
题目名称 Asm_Def的模拟赛 最终得分 0
用户昵称 fengchenxue 运行时间 10.030 s
代码语言 C++ 内存使用 3.25 MiB
提交时间 2015-11-01 11:50:38
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<cstring>
#include<string>
#include<cstdlib>
using namespace std;
int ans=0,plan=0,n;
struct str{
	
	double x,y,k,b;
}a[310],f[310][310];
bool use [310];
void fun(int x1,int x2,int x3)
{
	int an=3;
	for(int i=1;i<=n;i++)
	{
		if(i!=x1&&i!=x2&&i!=x3)
		{
			if(f[i][x1].k==f[x1][x2].k&&f[i][x1].b==f[x1][x2].b) an++;
			if(f[i][x1].k==f[x1][x3].k&&f[i][x1].b==f[x1][x3].b) an++;
			if(f[i][x3].k==f[x2][x3].k&&f[i][x3].b==f[x2][x3].b) an++;
		}
		
	}
	if(an==ans&&an&&ans&&use[x1]!=1&&use[x2]!=1&&use[x3]!=1)
		{
			use[x1]=1;
			use[x2]=1;
			use[x3]=1;
		//	printf("%d %d %d\n",x1,x2,x3);
		  plan++;
	    }
		if(an>ans)
		{
			
			ans=an;
			plan=1;
		
		}
	return;
}
int main()
{
	freopen("trib.in","r",stdin);
	freopen("trib.out","w",stdout);
	cin>>n;
	double ki,bi;
	for(int i=1;i<=n;i++)
	{
		scanf("%lf%lf",&a[i].x,&a[i].y);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=i+1;j<=n;j++)
		{
			ki=(a[i].y-a[j].y)/(a[i].x-a[j].x);
		//	printf("%d %d %lf %lf\n",i,j,a[i].y-a[j].y,a[i].x-a[j].y);
			if(a[i].x==a[j].x) ki=0;
			f[j][i].k=ki;
			f[i][j].k=ki;
			bi=a[i].y-ki*a[i].x;
			f[i][j].b=bi;
			f[j][i].b=bi;
		//	printf("%d %d %lf %lf\n",i,j,ki,bi);
		}
	}
	for(int j1=1;j1<=n;j1++)
	{
		for(int j2=j1+1;j2<=n;j2++)
		{
			for(int j3=j2+1;j3<=n;j3++)
			{
			//	printf("%d %d %d\n",j1,j2,j3);
				fun(j1,j2,j3);
			}
		}
	}
//	cout<<(-2)*(-2)<<endl;
	cout<<ans<<endl<<plan;
	return 0;
}