求助大佬,全wa,但为啥样例和第一个数据全过了
查看原帖
求助大佬,全wa,但为啥样例和第一个数据全过了
1092199
Mlao楼主2024/10/4 17:27
#include<bits/stdc++.h>

using namespace std;

int x[100000],y[100000],z[100000],ans=0;

bool vis[100000];

int n,h,r;

void dfs(int i){

	if(z[i]+r>=h){
    
		ans++;
		return; 
	}
	vis[i]=1;
	for(int j=1;j<=n;j++){
    
		if(!vis[j]&&r*2>=(double)sqrt(((double)x[i]-(double)x[j])*((double)x[i]-(double)x[j])+((double)y[i]-(double)y[j])*((double)y[i]-(double)y[j])+((double)z[i]-(double)z[j])*((double)z[i]-(double)z[j])))
		dfs(j);
	}
}
int main(){

	int nnn;
	cin>>nnn;
	while(nnn>=0){
		memset(vis,0,sizeof(vis));
		memset(x,0,sizeof(x));
		memset(y,0,sizeof(y));
		memset(z,0,sizeof(z));
		n=0;h=0;r=0;ans=0;
		nnn--;
		cin>>n>>h>>r;
		for(int i=1;i<=n;i++){
			cin>>x[i]>>y[i]>>z[i];
		}
		for(int i=1;i<=n;i++){
			if(!vis[i]&&z[i]<=r) dfs(i);
			if(ans!=0) {
				cout<<"Yes"<<endl;
				break;
			}
		}
		if(ans==0) cout<<"No"<<endl;
		memset(vis,0,sizeof(vis));
		memset(x,0,sizeof(x));
		memset(y,0,sizeof(y));
		memset(z,0,sizeof(z));
		n=0;h=0;r=0;ans=0;
	}
	return 0;
} ```
2024/10/4 17:27
加载中...