rt
可爱小红题奶酪
50pts WA code:
#include<iostream>
#include<cmath>
#include<cstring>
#define int long long
using namespace std;
int t,n,h,x,y,z;
double r;
struct holl{
int x,y,z;
};
holl a[1001];
bool vis[1001];
bool f;
void dfs(int x){
if(a[x].z+r>=h){
f=1;
return;
}
vis[x]=1;
for(int i=1;i<=n;i++){
double x1=a[x].x*1.0,x2=a[i].x*1.0;
double y1=a[x].y*1.0,y2=a[i].y*1.0;
double z1=a[x].z*1.0,z2=a[i].z*1.0;
double a1=x1*1.0-x2*1.0,a2=y1*1.0-y2*1.0,a3=z1*1.0-z2*1.0;
if(!vis[i]&&double(sqrt(a1*a1*1.0+a2*a2*1.0+a3*a3*1.0))<=r*2.0) dfs(i);
}
}
main(){
int t;
cin>>t;
while(t--){
f=0;
bool s=0;
cin>>n>>h>>r;
for(int i=1;i<=n;i++){
cin>>x>>y>>z;
a[i].x=x;
a[i].y=y;
a[i].z=z;
if(z-r<=0) s=1;
}
if(s) dfs(1);
memset(vis,0,sizeof(vis));
if(s==0) cout<<"No"<<endl;
else if(f) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}