#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int N=1005;
struct Node
{
long long x,y,z;
};
Node node[N];
bool inq[N];
long long n,h,r;
long long dist(Node p,Node q)
{
return (p.x-q.x)*(p.x-q.x)+(p.y-q.y)*(p.y-q.y)+(p.z-q.z)*(p.z-q.z);
}
bool bfs(int index)
{
queue<Node> q;
inq[index]=true;
q.push(node[index]);
while(!q.empty())
{
Node top=q.front();
q.pop();
if(top.z+r>=h) return true;
for(int j=1;j<=n;j++)
{
if(!inq[j] && dist(top,node[j])<=4*r*r)
{
inq[j]=true;
q.push(node[j]);
}
}
}
return false;
}
int main(int argc, char const *argv[])
{
int T;
cin>>T;
while(T--)
{
bool flag=false;
memset(inq,false,sizeof(inq)); //每次都要对inq数组初始化
scanf("%lld%lld%lld",&n,&h,&r);
for(int i=1;i<=n;i++)
scanf("%lld%lld%lld",&node[i].x,&node[i].y,&node[i].z);
for(int i=1;i<=n;i++)
{
if(node[i].z<=r)
if(bfs(i))
{
cout << "Yes" << endl;
flag=true;
break;
}
}
if(flag==false) cout << "No" << endl;
}
return 0;
}
P3958 奶酪
最新推荐文章于 2023-01-09 20:53:00 发布