using namespace std;
char a[99][99][99];
int vis[99][99][99];
struct node {
int x;
int y;
int z;
int t;
};
int xx[7]= {0,0,0,1,-1,0,0},yy[7]= {0,1,-1,0,0,0,0},zz[7]= {0,0,0,0,0,1,-1};
queue<node> s;
int main() {
node sex;
int n,m,q;
cin>>q>>n>>m;
node nx;
for(int i=1; i<=q; i++) {
for(int j=1; j<=n; j++) {
for(int w=1; w<=m; w++) {
cin>>a[i][j][w];
if(a[i][j][w]=='S') {
nx.t=0;
nx.x=i;
nx.y=j;
nx.z=w;
vis[i][j][w]=1;
}
if(a[i][j][w]=='E') {
sex.x=i;
sex.y=j;
sex.z=w;
a[i][j][w]=='.';
}
}
}
}
// cout<<sex.x<<sex.y<<sex.z;
//cout<<nx.x<<' '<<nx.y<<' '<<nx.z<<' ';
/* for(int w=1; w<=q; w++) {
for(int j=1; j<=n; j++) {
for(int i=1; i<=m; i++) {
cout<<a[i][j][w];
}
}
cout<<endl;
}*/
s.push(nx);
while(!s.empty()) {
nx=s.front();
node nnx;
if(nx.x==sex.x&&nx.y==sex.y&&nx.z==sex.z){
cout<<nx.t;
return 0;
}
for(int i=1; i<=6; ++i) {
int dx=nx.x+xx[i],dy=nx.y+yy[i],dz=nx.z+zz[i];
if(dx>=1&&dx<=q&&dy>=1&&dy<=n&&dz>=1&&dz<=m&&a[dx][dy][dz]!='#'&&!vis[dx][dy][dz]) {
vis[dx][dy][dz]=1;
nnx.x=xx[i];
nnx.y=yy[i];
nnx.z=zz[i];
nnx.t=nx.t+1;
s.push(nnx);
}
}
s.pop();
}
cout<<"Trapped!"<<endl;
return 0;
}
P2360 地下城主 看不出来哪里错了