#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char map[1000][1000];
int mapss[1000][1000];
int n,m,k;
int x,y,xx,yy;
void init()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0)break;
scanf("%d",&k);
for(int i=0;i<n;i++)
scanf("%s",map[i]);
memset(mapss,0,sizeof(mapss));
x=0;y=k-1;
mapss[x][y] = 0;
xx = n+1;yy=m+1;mapss[xx][yy]=0;
while(true)
{
if(x<0||y<0||x>=n||y>=m)
{printf("%d step(s) to exit\n",mapss[xx][yy]);break;}
if(mapss[x][y]!=0)
{
printf("%d step(s) before a loop of %d step(s)\n",
mapss[x][y]-1,mapss[xx][yy]-mapss[x][y]+1);
break;
}
mapss[x][y]=mapss[xx][yy]+1;
switch(map[x][y])
{
case 'E':xx=x;yy=y;y++;break;
case 'W':xx=x;yy=y;y--;break;
case 'S':xx=x;yy=y;x++;break;
case 'N':xx=x;yy=y;x--;break;
}
}
}
}
int main()
{
init();
return 0;
}
hdu 1035很简单的一个模拟
最新推荐文章于 2019-09-24 19:24:42 发布