#include<stdio.h> #include<string.h> int main() { int n,m,k,i,j,vis[20][20],flag,step,step1; char s[20][20]; while(scanf("%d%d%d",&n,&m,&k)&&!(n==0&&m==0&&k==0)) { getchar(); step=0; step=0; step1=0; flag=0; memset(vis,0,sizeof(vis)); for(i=0;i<n;i++) gets(s[i]); i=0; while(!vis[i][k-1]) { vis[i][k-1]=1; if(s[i][k-1]=='W') { k--; step++; if(k-1<0) { flag=1; break; } } else if(s[i][k-1]=='N') { i--; step++; if(i<0) { flag=1; break; } } else if(s[i][k-1]=='E') { k++; step++; if(k-1>=m) { flag=1; break; } } else { i++; step++; if(i>=n) { flag=1; break; } } } if(!flag) { memset(vis,0,sizeof(vis)); while(!vis[i][k-1]) { vis[i][k-1]=1; if(s[i][k-1]=='W') { k--; step1++; } else if(s[i][k-1]=='N') { i--; step1++; } else if(s[i][k-1]=='E') { k++; step1++; } else { i++; step1++; } } } if(flag) printf("%d step(s) to exit\n",step); else printf("%d step(s) before a loop of %d step(s)\n",step-step1,step1); } }
HDU 1035
最新推荐文章于 2019-05-22 23:40:45 发布