比赛 Asm_Def战记之透明计算网络 评测结果 WWWWTTTTTW
题目名称 Asm_Def的模拟赛 最终得分 0
用户昵称 lzh 运行时间 10.105 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2015-11-01 11:50:07
显示代码纯文本
#include<iostream> 
#include<cstring> 
#include<cstdio> 
#include<string> 
#include<algorithm> 
#include<cmath> 
#include<utility> 
#include<stdio.h> 
#include<cstdlib> 
#include<iomanip> //cout<<setiosflags(ios::fixed)<<setprecision(2); 
#include<ctime> //double a=(double)clock();   cout<<a<<endl; 
#include<vector> 
#include<queue> 
using namespace std;
const int maxk=10000;
int N,maxx=3,cnt=0,tmaxx,t1,t2;
struct point
{
	double x,y;
}P[310],tP[4];
struct line
{
	double k,b;
}L[4],temp;//y=kx+b
inline line make_line(const int &i,const int &j)
{
	if(P[i].x==P[j].x)
		temp.k=maxk;
	else
		temp.k=1.0*(P[j].y-P[i].y)/(P[j].x-P[i].x);
	temp.b=P[i].y-temp.k*P[i].x;
	return temp;
}
int main()
{
	freopen("trib.in","r",stdin);
	freopen("trib.out","w",stdout);
	scanf("%d",&N);
	if(N<=2)
	{
		printf("%d\n",0);
		return 0;
	}
	for(int i=1;i<=N;i++)
	{
		scanf("%d%d",&t1,&t2);
		P[i].x=t1,P[i].y=t2;
	}
	for(int i=1;i<=N;i++)
		for(int j=i+1;j<=N;j++)
		{
			L[1]=make_line(i,j);
			for(int k=j+1;k<=N;k++)
			{
				L[2]=make_line(j,k);
				L[3]=make_line(i,k);
				tmaxx=3;
				for(int t=1;t<=N;t++)
				{
					if(t==i||t==j||t==k)
						continue;
					if(rand()%rand()==0)
						tmaxx++;
				}
				if(tmaxx==maxx)
					cnt++;
				else if(tmaxx>maxx)
					maxx=tmaxx,cnt=1;
			}
		}
	printf("%d %d\n",maxx,cnt);
	fclose(stdin),fclose(stdout);
	return 0;
}