| ||||||||||
| 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 | |||||||||
看了很多人的,感觉写的一样啊? 为啥一直WA 求大神看看#include<iostream>
#include<vector>
#include<list>
#include<stack>
#include<cstring>
#include<math.h>
#include<stdio.h>
#include<sstream>
#include<iomanip>
#include<algorithm>
#include<map>
#include<string.h>
#include<string>
using namespace std;
#define N 41
#define Inf 99999
#define inf -99999
int n,row,column;
int to[6][3] = {{0,0,1},{0,0,-1},{0,1,0},{0,-1,0},{1,0,0} ,{-1,0,0}};
int visit[N][N][N];
char ch[N][N][N];
struct node{
int x;
int y;
int z;
int step;
}beg;
int Bfs(node beg){
list<node> ls;
visit[beg.z][beg.y][beg.x] = 1;
beg.step = 0;
ls.push_back(beg) ;
while(!ls.empty()){
node now = ls.front();
ls.pop_front();
node ne;
ne.step = now.step+1;
for(int i=0;i<6;i++){
ne.x = now.x+to[i][0];
ne.y= now.y+to[i][1];
ne.z= now.z+to[i][2];
if(visit[ne.z][ne.y][ne.x]==1||ch[ne.z][ne.y][ne.x]=='#'){
continue;
}
if(ne.x<0||ne.x>column-1||ne.y<0||ne.y>row||ne.z<0||ne.z>n-1)
continue;
if(ch[ne.z][ne.y][ne.x]=='E') {
return ne.step;
}
ls.push_back(ne) ;
visit[ne.z][ne.y][ne.x] = 1;
}
}
return -1;
}
int main(){
while(cin>>n>>row>>column){
if(n==0&&row==0&&column==0)
break;
memset(visit,0,sizeof(visit));
for(int i=0;i<n;i++){
for(int j=0;j<row;j++){
for(int k=0;k<column;k++){
cin>>ch[i][j][k];
if(ch[i][j][k]=='S'){
beg.x =k;
beg.y =j;
beg.z = i;
}
}
}
}
int end = Bfs(beg);
if(end==-1){
printf("Trapped!\n");
}else
printf("Escaped in %d minute(s).\n", end);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator