记录编号 475936 评测结果 AAAAAAAAAA
题目名称 [NOIP 2017]奶酪 最终得分 100
用户昵称 GravatarRegnig Etalsnart 是否通过 通过
代码语言 C++ 运行时间 0.675 s
提交时间 2017-11-19 22:12:34 内存使用 0.13 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
#define INF 1000000000
using namespace std;
typedef long long LL;
const int maxn=1001;
int T,n,h,r,flagup[maxn],vis[maxn];
LL x[maxn],y[maxn],z[maxn];
bool ans;
queue<int>Q;
double dis(LL x1,LL yy,LL z1,LL x2,LL y2,LL z2)
{
	return sqrt((x1-x2)*(x1-x2)+(yy-y2)*(yy-y2)+(z1-z2)*(z1-z2));
}
int Main()
{
	freopen("2017cheese.in","r",stdin);freopen("2017cheese.out","w",stdout);
	scanf("%d",&T);
	while(T--)
	{
		ans=0;
		memset(flagup,0,sizeof(flagup));
		memset(vis,0,sizeof(vis));
		scanf("%d%d%d",&n,&h,&r);
		for(int i=1;i<=n;i++)
		{
			scanf("%lld%lld%lld",&x[i],&y[i],&z[i]);
			if(z[i]<=r)
			{
				Q.push(i);
				vis[i]=1;
			}
			if(h-z[i]<=r)flagup[i]=1;
		}
		while(!Q.empty())
		{
			int now=Q.front();Q.pop();
			if(flagup[now])
			{
				ans=1;
				break;
			}
			for(int i=1;i<=n;i++)
			{
				if(!vis[i])if(dis(x[now],y[now],z[now],x[i],y[i],z[i])<=(r<<1))
				{
					Q.push(i);
					vis[i]=1;
				}
			}
		}
		while(!Q.empty())Q.pop();
		if(ans)printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}
int main(){;}
int syy=Main();