记录编号 |
510084 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2017]奶酪 |
最终得分 |
100 |
用户昵称 |
leon |
是否通过 |
通过 |
代码语言 |
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(){;
}