记录编号 510084 评测结果 AAAAAAAAAA
题目名称 [NOIP 2017]奶酪 最终得分 100
用户昵称 Gravatarleon 是否通过 通过
代码语言 C++ 运行时间 0.754 s
提交时间 2018-09-17 21:30:55 内存使用 1.05 MiB
显示代码纯文本
        #include <iostream>
        #include <cstdio>
        using namespace std;
    long long  father[20010];
     
    int Find(int a) 
    {
      if(father[a] != a)
        father[a] = Find(father[a]);
      return father[a];
    }
     
    //             
    long long dist(long long x1,long long x2,long long y1,long long y2,long long z1,long long z2){
    	return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2);
    }
     
     
     
    //
        int Main()
        {
        	freopen("2017cheese.in","r",stdin);
        	freopen("2017cheese.out","w",stdout);
        long long T,n,h,r,x[100010]={0},y[100010]={0},z[100010]={0},a,b,s11=1;
            ios::sync_with_stdio(false);
    	cin>>T;
    	for(int i=1;i<=T;i++){
    		cin>>n>>h>>r;
    		for(int j=1;j<=n;j++){
    			cin>>x[j]>>y[j]>>z[j];
    			father[j]=j;
    		}
    		for(int j=2;j<=n;j++){
    			for(int k=j-1;k>=1;k--){
    					if(dist(x[j],x[k],y[j],y[k],z[j],z[k])<=4*r*r){
    				a=Find(j);
    				b=Find(k);
    				father[a]=b;
    					}
    			}
    		}
    		for(int j=1;j<=n;j++){			
    			if(z[j]-r<=0&&z[j]+r>=0){
    			for(int k=1;k<=n;k++){
                if(h-z[k]<=r&&Find(j)==Find(k)){
    				cout<<"Yes"<<endl;
    				s11=0;
    				break;
    			}
    			}	
    			if(s11==0){
    				break;
    			}
    			}		
     
    		}
    		if(s11!=0){
    		cout<<"No"<<endl;
    		}
    		s11=1;
    		
    	}
    	
        	return 0;
        }
int xx=Main();
int main(){;
}