#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
struct node
{
int x,y,z,flag;
}G[1010];
struct node1
{
int a,b,len;
}E[1010000];
bool cmp(const node1 &a,const node1 &b)
{
return a.len<b.len;
}
double cal(int a,int b)
{
int x=G[a].x-G[b].x;
int y=G[a].y-G[b].y;
int z=G[a].z-G[b].z;
return x*x+y*y+z*z;
}
int cnt,num[1010];
int main()
{
int n;
while(~scanf("%d",&n))
{
cnt=0;
for(int i=0;i<n;i++)
{
scanf("%d%d%d%d",&G[i].x,&G[i].y,&G[i].z,&G[i].flag);
num[i]=1;
}
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
E[cnt].a=i;
E[cnt].b=j;
E[cnt++].len=cal(i,j);
}
sort(E,E+cnt,cmp);
int res=0,t=0;
int len=0;
for(int i=0;i<cnt;i++)
{
int l=E[i].len;
while(i<cnt&&E[i].len==l)
{
int a=E[i].a,b=E[i].b;
if(G[a].flag==G[b].flag)
{
num[a]++;
num[b]++;
if(num[a]==0)
t--;
if(num[b]==0)
t--;
}
else
{
num[a]--;
num[b]--;
if(num[a]==-1)
t++;
if(num[b]==-1)
t++;
}
i++;
}
i--;
if(t>res)
{
res=t;
len=l;
}
}
printf("%d\n%.4f\n",res,sqrt(len*1.0));
}
}
LA 2963
最新推荐文章于 2022-07-11 05:58:04 发布