Description
INPUT
OUTPUT
SAMPLE INPUT
SAMPLE OUTPUT
HINT
模拟题目!!
#include<iostream>
using namespace std;
int w,h,t,mark[11][11],s;
char map[11][11];
void bfs(int x,int y)
{
if(x<0||x>=h||y<0||y>=w)
{
cout<<s-1<<" step(s) to exit"<<endl;
return ;
}
if(!mark[x][y])
mark[x][y]=s++;
else
{
cout<<mark[x][y]-1<<" step(s) before a loop of "<<s-mark[x][y]<<" step(s)"<<endl;
return ;
}
if(map[x][y]=='W')
bfs(x,y-1);
else if(map[x][y]=='E')
bfs(x,y+1);
else if(map[x][y]=='S')
bfs(x+1,y);
else if(map[x][y]=='N')
bfs(x-1,y);
}
int main()
{
int i,j;
while(cin>>h>>w&&h&&w)
{
cin>>t;
s=1;
memset(mark,0,sizeof(mark));
for(i=0;i<h;i++)
for(j=0;j<w;j++)
cin>>map[i][j];
bfs(0,t-1);
}
}