Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
哪个高手给看看咯!#include<iostream> using namespace std; int D[6][3]={{1,0,0},{0,1,0},{0,0,1},{-1,0,0},{0,-1,0},{0,0,-1}}; struct sq{ int x,y,z; int t; }; char maze[31][31][31]; int L,R,C; int bfs(int x,int y,int z){ int front=0,tail=1; sq node[10000]; node[0].x=x;node[0].y=y;node[0].z=z; node[0].t=0; while(front<tail) { for(int h=0;h<6;h++) { int i=node[front].x+D[h][0]; int j=node[front].y+D[h][1]; int k=node[front].z+D[h][2]; if(maze[i][j][k]=='E') return node[front].t+1; if(i>=0&&i<L&&j>=0&&j<R&&k>=0&&k<C&&maze[i][j][k]!='#') { node[tail].x=i; node[tail].y=j; node[tail].z=k; node[tail++].t=node[front].t+1; maze[i][j][k]='#'; } } front++; } return -1; } int main() { while(1) { int bx=0,by=0,bz=0; cin>>L>>R>>C; if(L==0&&R==0&&C==0) exit(0); for(int i=0;i<L;i++) for(int j=0;j<R;j++) for(int k=0;k<C;k++) { cin>>maze[i][j][k]; if(maze[i][j][k]=='S') { bx=i;by=j;bz=k; } } int total=bfs(bx,by,bz); if(total!=-1) cout<<"Escaped in "<<total<<" minute(s)."<<endl; else cout<<"Trapped!"<<endl; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator