后8个点全WA,求大佬指点
#include<bits/stdc++.h>
using namespace std;
int f[1005];
int find(int x){
if(f[x]==x) return x;
return f[x]=find(f[x]);
}
struct node{
int x,y,z;
int operator +(const node &o)const{
return (x-o.x)*(x-o.x)+(y-o.y)*(y-o.y)+(z-o.z)*(z-o.z);
}
};
int main(){
int t;
cin>>t;
while(t--){
int n,h,r;
int q[1005],p[1005],lq=0,lp=0;
int flag=0;
node a[1005];
cin>>n>>h>>r;
for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].y>>a[i].z,f[i]=i;
for(int i=1;i<=n;i++){
if(a[i].z<=r) q[++lq]=i;
if(a[i].z+r>=h) p[++lp]=i;
for(int j=1;j<=n;j++){
int u=find(i),v=find(j);
if(u!=v&&a[i]+a[j]<=4*r*r) f[u]=v;
}
}
for(int i=1;i<=lq;i++)
for(int j=1;j<=lp;j++)
if(find(q[i])==find(p[i])){cout<<"Yes\n";flag=1;}
if(flag==0) cout<<"No\n";
}
return 0;
}