记录编号 348952 评测结果 AAAAAAAAAA
题目名称 输出全靠花 最终得分 100
用户昵称 Gravatar残星誓言 是否通过 通过
代码语言 C++ 运行时间 0.800 s
提交时间 2016-11-14 17:34:32 内存使用 8.16 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1500;
bool D[45][45][45][45];
bool vis[45][45][45][45];
struct node
{
	int x; int y; int z; int w;
} v[maxn];
int n;
int ans=2;
double es=1e-6;
double ABS(double x)
{
	if(x>0) return x;
	return (0-x);
}
int GCD(int a,int b)
{
	if(a%b==0) return b;
	else return GCD(b,a%b);
}
int gcd(int a,int b,int c,int d)
{
		int tp=GCD(a,b);
		tp=GCD(tp,c);
		tp=GCD(tp,d);
		return tp;
}
int main()
{
	
	freopen("xumingshi.in","r",stdin);
	freopen("xumingshi.out","w",stdout);
	scanf("%d",&n);
	memset(D,0,sizeof(D));
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d%d%d",&v[i].x,&v[i].y,&v[i].z,&v[i].w);
		v[i].x+=21;
		v[i].y+=21;
		v[i].z+=21;
		v[i].w+=21;
		D[v[i].x][v[i].y][v[i].z][v[i].w]=1;
	}
	for(int i=1;i<=n;i++)
		for(int j=i+1;j<=n;j++)
			{	
				
				int a=(v[j].x-v[i].x);
				int b=(v[j].y-v[i].y);
				int c=(v[j].z-v[i].z);
				int d=(v[j].w-v[i].w);
				int temp=1;
				int num=0;
				if(a!=0&&b!=0&&c!=0&&d!=0)  
				{
				temp=gcd(a,b,c,d);
				a=a/temp;
				b=b/temp;
				c=c/temp;
				d=d/temp;
				}
				for(int lam=-40;lam<=40;lam++)
				{
					int x=v[i].x+lam*a;
					int y=v[i].y+lam*b;
					int z=v[i].z+lam*c;
					int w=v[i].w+lam*d;
					if(x>0&&y>0&&z>0&&w>0&&x<42&&y<42&&z<42&&w<42&&D[x][y][z][w])
					{
						num++;
						vis[x][y][z][w]=1;
					}
				}
				
				if(num>ans) ans=num;
			}
			
	printf("%d",ans);
	return 0;
}