记录编号 500384 评测结果 AAAAAAAAAA
题目名称 [NOIP 2017]奶酪 最终得分 100
用户昵称 Gravatar梦那边的美好ET 是否通过 通过
代码语言 C++ 运行时间 0.730 s
提交时间 2018-07-12 14:21:22 内存使用 0.21 MiB
显示代码纯文本
#include<iostream>  
#include<cstdio>
#include<cmath> 
#include<cstring>  
#include<algorithm>  
using namespace std; 
int t;
long long n,h,r,d[1001],ld,x[1001],y[1001],z[1001];
bool bk[1001];
int hs(int a1,int a2){
	if(((x[a1]-x[a2])*(x[a1]-x[a2])+(y[a1]-y[a2])*(y[a1]-y[a2])+(z[a1]-z[a2])*(z[a1]-z[a2]))<=4*r*r)
	    return 1;
	return 0;
}
int main(){ 
    freopen("2017cheese.in","r",stdin);        
    freopen("2017cheese.out","w",stdout);
    cin>>t;
    for(int k=1;k<=t;k++){
    	cin>>n>>h>>r;
    	ld=0;
    	int l=1,ju=0;
    	for(int i=1;i<=n;i++){
    		cin>>x[i]>>y[i]>>z[i];
    		bk[i]=d[i]=0;
		}
		for(int i=1;i<=n;i++){
			if(z[i]<=r){
				ld+=1;
				d[ld]=i;
				bk[i]=1;
				if((h-z[i])<=r){
					ju=1;
					break;
				}
			}
		}
		if(ju!=1){
		    while(l<=ld){
			    for(int i=1;i<=n;i++){
				    if(bk[i]==0&&hs(d[l],i)){
					    ld+=1;
					    d[ld]=i;
				    	bk[i]=1;
					    if((h-z[i])<=r){
					    	ju=1;
					    	break;
					    }
			    	}
		    	}
			    if(ju==1)break;
			    l+=1;
		    }
	    }
		if(ju==0)cout<<"No"<<endl;
		else cout<<"Yes"<<endl;
	}
    return 0;  
}