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 |
1.队列开小了 2.输入顺序反了In Reply To:谁要找出我代码哪儿错了、、、、姐姐给他买糖吃~ Posted by:Moon_1st at 2010-07-07 15:45:27 //修改后 #include <iostream> using namespace std; const int px[6]={0,0,0,0,1,-1}; const int py[6]={0,0,-1,1,0,0}; const int pz[6]={1,-1,0,0,0,0}; struct Point { int x,y,z,length; }d[100000]; int l,r,c; char map[40][40][40]; bool visit[40][40][40]; int bfs(int xx,int yy,int zz) { int i,s,t,ans,x,y,z; memset(visit,false,sizeof(visit)); memset(d,0,sizeof(d)); visit[xx][yy][zz]=1; d[0].x=xx,d[0].y=yy,d[0].z=zz; s=t=0; while(s<=t) { for(i=0;i<6;i++) { x=d[s].x+px[i]; y=d[s].y+py[i]; z=d[s].z+pz[i]; if(!visit[x][y][z]&&(map[x][y][z]=='.'||map[x][y][z]=='E')) { visit[x][y][z]=true; d[++t].x=x; d[t].y=y; d[t].z=z; d[t].length=d[s].length+1; if(map[x][y][z]=='E') return d[t].length; } } s++; } return -1; } int main() { int i,j,k,sx,sy,sz,ans; while(scanf("%d%d%d",&l,&r,&c)!=EOF) { if(l==0||r==0||c==0) break; memset(map,0,sizeof(map)); for(i=1;i<=l;i++) for(j=1;j<=r;j++) for(k=1;k<=c;k++) { cin>>map[i][j][k]; if(map[i][j][k]=='S') { sx=i; sy=j; sz=k; } } ans=bfs(sx,sy,sz); if(ans==-1) printf("Trapped!\n"); else printf("Escaped in %d minute(s).\n",ans); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator