40分求调!赏1关!
查看原帖
40分求调!赏1关!
1304322
dengzhiwen_楼主2024/4/30 19:37

题目

代码:

#include<bits/stdc++.h>
using namespace std;
struct dl{
	int x,y,z,s;
}qd,bb,ez;
queue<struct dl> q;
int l,r,c,fx[6][3]={-1,0,0,0,1,0,1,0,0,0,-1,0,0,0,1,0,0,-1},b[36][36][36];
char mp[36][36][36];
void bfs(){
	while(q.size()){
		bb=q.front();
		q.pop();
		for(int i=0;i<6;i++){
			ez.x=bb.x+fx[i][0];
			ez.y=bb.y+fx[i][1];
			ez.z=bb.z+fx[i][2];
			ez.s=bb.s+1;
			if(ez.x>=0&&ez.x<l&&ez.y>=0&&ez.y<r&&ez.z>=0&&ez.z<c&&mp[ez.z][ez.x][ez.y]!='#'&&b[ez.z][ez.x][ez.y]==0){
				if(mp[ez.z][ez.x][ez.y]=='E'){
					printf("Escaped in %d minute(s).",ez.s);
					return;
				}
				q.push(ez);
				b[ez.z][ez.x][ez.y]=1;
			}
		}
	}
	cout<<"Trapped!";
}
int main(){
	cin>>l>>r>>c;
	for(int i=0;i<l;i++) for(int j=0;j<r;j++) for(int k=0;k<c;k++){
		cin>>mp[k][i][j];
		if(mp[i][j][k]=='S') {
			q.push({i,j,k,0});
			b[k][i][j]=1;
		}
	}
	bfs();
	return 0;
}

求助呀!!!

2024/4/30 19:37
加载中...