记录编号 |
348952 |
评测结果 |
AAAAAAAAAA |
题目名称 |
输出全靠花 |
最终得分 |
100 |
用户昵称 |
残星誓言 |
是否通过 |
通过 |
代码语言 |
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;
}