代码:
#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;
}
求助呀!!!