本来是4AC,6RE的,现在变成4AC,6WA了(QWQ)
代码如下:
#include<stdio.h>
struct dong
{
int x,y,z;
}dd[1005];
int n,h,r,ji[1005][1005];
void csh()
{
for(int i=0;i<=1003;i++)
{
for(int j=0;j<=1003;j++)
{
ji[i][j]=0;
}
}
}
bool sflj(int a,int b)//shi fou lian jie
{
int x,y,z;
x=dd[a].x-dd[b].x;
y=dd[a].y-dd[b].y;
z=dd[a].z-dd[b].z;
x=x*x;
y=y*y;
z=z*z;
if((x+y+z)<=(r*2)*(r*2))
{
return 1;
}
return 0;
}
void bcj(int ngd)// bin cha ji
{
for(int i=1;i<=ji[0][1];i++)
{
for(int j=1;j<=ji[i][0];j++)
{
if(sflj(ji[i][j],ngd))
{
ji[i][0]++;
ji[i][ji[i][0]]=ngd;
return ;
}
}
}
ji[0][1]++;
ji[ji[0][1]][0]++;
ji[ji[0][1]][ji[ji[0][1]][0]]=ngd;
}
void nailao()
{
scanf("%d%d%d",&n,&h,&r);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&dd[i].x,&dd[i].y,&dd[i].z);
bcj(i);
}
for(int i=1;i<=n;i++)
for(int i=1;i<=ji[0][1];i++)
{
bool ding=0,di=0;
for(int j=1;j<=ji[i][0];j++)
{
//printf("%d %d\n",i,j);
if((dd[ji[i][j]].z+r)>=h)
{
ding=1;
//printf("nmd1\n");
}
if(dd[ji[i][j]].z-r<=0)
{
di=1;
//printf("nmd2\n");
}
}
if(ding==1 && di==1)
{
printf("Yes\n");
// printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
return ;
}
}
printf("No\n");
// printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
return ;
}
int main()
{
int T;
scanf("%d",&T);
for(int i=1;i<=T;i++)
{
nailao();
csh();
}
return 0;
}
有神犇来看看孩子吗(一脸恳求)