比赛 20161114 评测结果 EEEEEEEEEE
题目名称 输出全靠花 最终得分 0
用户昵称 Janis 运行时间 0.759 s
代码语言 C++ 内存使用 0.33 MiB
提交时间 2016-11-14 11:38:37
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;

const int maxn = 1010;
struct Node{
	int x,y,z,w;
	void init(){
		scanf("%d%d%d%d",&x,&y,&z,&w);
	}
}p[maxn];
int n,ans=-1;
const double eps = 1e-5;

bool onOne(int a,int b,int c){
	int dx = p[b].x-p[a].x;
	int dy = p[b].y-p[a].y;
	int dz = p[b].z-p[a].z;
	int dw = p[b].w-p[a].w;
	int x = p[c].x;
	int y = p[c].y;
	int z = p[c].z;
	int w = p[c].w;
	double lam = (x-p[a].x)/dx;
	return (
		y-(p[a].y+lam*dy) <= eps &&
		z-(p[a].z+lam*dz) <= eps &&
		w-(p[a].w+lam*dw) <= eps 
			);

	/*
		if( x - p[a].x+i*dx <= eps &&
			y - p[a].y+i*dy <= eps &&
			z - p[a].z+i*dz <= eps &&
			w - p[a].w+i*dw <= eps  )   return 1;
	}
	return 0;
	*/
}
int main(){
	#ifndef DEBUG
		string FileName="xumingshi";
		freopen((FileName+".in").c_str(),"r",stdin);
		freopen((FileName+".out").c_str(),"w",stdout);
	#endif
	scanf("%d",&n);
	for(int i = 0; i < n; i++)p[i].init();
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			if(i == j)continue;
			int temp(0);
			for(int k = 0; k < n; k++){
				if(k == i || k == j)continue;
				else if(onOne(i,j,k)) temp++;
			}
			ans = max(ans, temp+2);
		}
	}
	printf("%d",ans);
}