Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

代码能过各种样例,为何还是WA,求大神检查

Posted by zxy021222 at 2018-05-20 15:22:24 on Problem 2251
#include<iostream>
#include<queue>
#include<string.h>
using namespace std;
int c,n,m;
int book[101][101][101];
char mp[101][101][101];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
struct node{
	int x;
	int y;
	int f;
	int step;
};
int main(){
	while(cin>>c>>n>>m){
		if(c==0&&n==0&&m==0){
			break;
		}
		
		queue<node> q;
		int i,j,k,sf,sx,sy,ef,ex,ey;
		for(i=1;i<=c;i++){
			for(j=1;j<=n;j++){
				for(k=1;k<=m;k++){
					cin>>mp[i][j][k];
					if(mp[i][j][k]=='S'){
						sf=i;
						sx=j;
						sy=k;
					}
					if(mp[i][j][k]=='E'){
						ef=i;
						ex=j;
						ey=k;
						mp[i][j][k]='.';
					}
				}
			}
		}
		node start;
		start.f=sf;
		start.step=0;
		start.x=sx;
		start.y=sy;
		q.push(start);
		book[sf][sx][sy]=1;
		while(q.empty()==false){
			node se=q.front();
			q.pop();
			for(i=0;i<=3;i++){
				int xx=se.x+dx[i];
				int yy=se.y+dy[i];
				if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&book[se.f][xx][yy]==0&&mp[se.f][xx][yy]=='.'){
					node newp;
					newp.f=se.f;
					newp.step=se.step+1;
					newp.x=xx;
					newp.y=yy;
					book[se.f][xx][yy]=1;
					q.push(newp);
					if(newp.f==ef&&newp.x==ex&&newp.y==ey){
						cout<<"Escaped in "<<newp.step<<" minute(s)."<<endl;
						break;
					}
				}
			}
			
			node newp;
			newp.f=se.f-1;
			newp.step=se.step+1;
			newp.x=se.x;
			newp.y=se.y;
			if(newp.f>=1&&book[newp.f][newp.x][newp.y]==0&&mp[newp.f][newp.x][newp.y]=='.'){
				book[newp.f][newp.x][newp.y]=1;
				q.push(newp);
				if(newp.f==ef&&newp.x==ex&&newp.y==ey){
					cout<<"Escaped in "<<newp.step<<" minute(s)."<<endl;
					break;
				}
			}
			
			node newp2;
			newp2.f=se.f+1;
			newp2.step=se.step+1;
			newp2.x=se.x;
			newp2.y=se.y;
			if(newp2.f<=c&&book[newp2.f][newp2.x][newp2.y]==0&&mp[newp2.f][newp2.x][newp2.y]=='.'){
				book[newp2.f][newp2.x][newp2.y]=1;
				q.push(newp2);
				if(newp2.f==ef&&newp2.x==ex&&newp2.y==ey){
					cout<<"Escaped in "<<newp2.step<<" minute(s)."<<endl;
					break;
				}
			}
		}
		
		if(q.empty()==true)
		cout<<"Trapped!"<<endl; 
		
		memset(book,0,sizeof(book));
	}
    return 0;  
} 

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator