| ||||||||||
| 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 | |||||||||
感觉没啥错啊5555 写了好多遍一直WA,求求大神解答!!#include <iostream>
#include <cstdio>
#include <stdio.h>
#include <cstring>
#include <queue>
using namespace std;
struct node{
int ni,nj,nk;
int dis;
};
int L,R,C;
int si,sj,sk;
int bOK=0;
char a[35][35][35];
int di[6]={1,-1,0,0,0,0};
int dj[6]={0,0,1,-1,0,0};
int dk[6]={0,0,0,0,1,-1};
int vis[35][35][35];
queue <node> q;
int bfs()
{
node tmp;
tmp.ni=si;
tmp.nj=sj;
tmp.nk=sk;
tmp.dis=0;
q.push(tmp);
while(!q.empty())
{
node now=q.front();
q.pop();
int wi=now.ni,wj=now.nj,wk=now.nk,wdis=now.dis;
for(int p=0;p<6;p++)
{
int oi=wi+di[p];
int oj=wj+dj[p];
int ok=wk+dk[p];
if(oi<1||oi>L||oj<1||oj>R||ok<1||ok>C) continue;
if(a[oi][oj][ok]=='#') continue;
if(vis[oi][oj][ok]) continue;
if(a[oi][oj][ok]=='E')
{
bOK=1;
printf("Escaped in %d minute(s).\n",wdis+1);
break;
}
tmp.ni=oi;
tmp.nj=oj;
tmp.nk=ok;
tmp.dis=wdis+1;
q.push(tmp);
vis[oi][oj][ok]=1;
}
}
return 0;
}
int main()
{
cin>>L>>R>>C;
while(L!=0||R!=0||C!=0)
{
memset(vis,0,sizeof(vis));
bOK=0;
for(int i=1;i<=L;i++)
{
for(int j=1;j<=R;j++)
{
for(int k=1;k<=C;k++)
{
cin>>a[i][j][k];
if(a[i][j][k]=='S')
{
si=i;
sj=j;
sk=k;
}
}
}
}
bfs();
if(bOK==0) printf("Trapped!\n");
cin>>L>>R>>C;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator