标签:let else ace level rmi size evel [1] blank
来源:http://poj.org/problem?id=2251
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 16522 | Accepted: 6425 |
Description
Input
Output
Escaped in x minute(s).
Trapped!
Sample Input
3 4 5 S.... .###. .##.. ###.# ##### ##### ##.## ##... ##### ##### #.### ####E 1 3 3 S## #E# ### 0 0 0
Sample Output
Escaped in 11 minute(s). Trapped!
Source
#include<iostream> #include<string> using namespace std; const int Max=30000; int L,R,C,xe,ye,ze; bool visit[31][30][30]; string str[31][31]; int dir[6][3]={ {0,0,1},{0,0,-1}, {-1,0,0},{1,0,0}, {0,1,0},{0,-1,0} }; struct Node{ int xs,ys,zs,time; Node() { xs=0;ys=0;zs=0;time=0; }; } map[Max],temp; int main() { while((cin>>L>>R>>C)&&(L||R||C)) { int i,j,k,flag=1; for(i=0;i<L;i++){ for(j=0;j<R;j++) { cin>>str[i][j]; for(k=0;k<C;k++) if(str[i][j][k]==‘.‘) visit[i][j][k]=true; else if(str[i][j][k]==‘#‘) visit[i][j][k]=false; else if(str[i][j][k]==‘S‘) { map[0].xs=i; map[0].ys=j; map[0].zs=k; visit[i][j][k]=false; } else if(str[i][j][k]==‘E‘) { xe=i; ye=j;ze=k; visit[i][j][k]=true; } } } int nodedir=0,exdir=0; while(nodedir<=exdir&&exdir<Max&&flag) { for(int i=0;i<6;i++) { temp=map[nodedir]; //设置父节点 int tx=temp.xs+dir[i][0],ty=temp.ys+dir[i][1],tz=temp.zs+dir[i][2]; if(tx>=0&&tx<L&&ty>=0&&ty<R&&tz>=0&&tz<C&&visit[tx][ty][tz]) { temp.xs=tx; temp.ys=ty; temp.zs=tz; visit[tx][ty][tz]=false; temp.time++; map[++exdir]=temp; if(temp.xs==xe&&temp.ys==ye&&temp.zs==ze) { cout<<"Escaped in "<<temp.time<<" minute(s)."<<endl; flag=0; break; } } } nodedir++; } if(flag) cout<<"Trapped!"<<endl; } return 0; }
标签:let else ace level rmi size evel [1] blank
原文地址:http://www.cnblogs.com/cynchanpin/p/6903038.html