Maruf_Hasan

532

Jan 28th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. int l,r,c;
  5. bool visited[50][50][50];
  6. char cell[50][50][50];
  7. int fz[]={0,0,0,0,-1,1};
  8. int fy[]={0,0,-1,1,0,0};
  9. int fx[]={-1,1,0,0,0,0};
  10. int dis[50][50][50];
  11. struct structure
  12. {
  13. int z,x,y;
  14.  
  15. };
  16.  
  17. void mybfs(int sx,int sy,int sz)
  18. {
  19. memset(dis,0,sizeof dis);
  20. structure st;
  21. visited[sz][sx][sy]=true;
  22. dis[sz][sx][sy]=0;
  23. st.z=sz;
  24. st.x=sx;
  25. st.y=sz;
  26. queue<structure>q;
  27. q.push(st);
  28. while(!q.empty())
  29. {
  30. structure p,p1;
  31. p=q.front();
  32. q.pop();
  33. for(int i=0;i<6;i++)
  34. {
  35. int tx=p.x+fx[i];
  36. int ty=p.y+fy[i];
  37. int tz=p.z+fz[i];
  38. if(tx>=0 && tz<l && ty>=0 && tx<r && tz>=0 && ty<c && visited[tz][tx][ty]==false)
  39. {
  40. dis[tz][tx][ty]=dis[p.z][p.x][p.y]+1;
  41. visited[tz][tx][ty]=true;
  42. p1.x=tx;
  43. p1.y=ty;
  44. p1.z=tz;
  45. //cout<<tx<<" "<<ty<<" "<<tz<<endl;
  46. q.push(p1);
  47. }
  48. }
  49. }
  50. }
  51.  
  52.  
  53. int main()
  54. {
  55. while(scanf("%d %d %d",&l,&r,&c)==3)
  56. {
  57. if(l==0 && r==0 && c==0)
  58. break;
  59. int i,j,k,sx,sy,sz,dx,dy,dz;
  60. for(i=0;i<l;i++)
  61. {
  62. for(j=0;j<r;j++)
  63. {
  64. for(k=0;k<c;k++)
  65. {
  66. cin>>cell[i][j][k];
  67. if(cell[i][j][k]=='#')
  68. {
  69. visited[i][j][k]=true;
  70. }
  71. else if(cell[i][j][k]=='S')
  72. {
  73. sz=i,sx=j,sy=k;
  74. }
  75. else if(cell[i][j][k]=='E')
  76. {
  77. dz=i,dx=j,dy=k;
  78. }
  79. }
  80. }
  81. }
  82. mybfs(sx,sy,sz);
  83. int ans=dis[dz][dx][dy];
  84. if(ans==0)
  85. printf("Trapped!\n");
  86. else
  87. printf("Escaped in %d minute(s).\n",ans);
  88.  
  89. for(i=0;i<51;i++){
  90. for(j=0;j<51;j++)
  91. for(k=0;k<51;k++)
  92. cell[i][j][k]=0;
  93. }
  94. }
  95.  
  96. return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment