HDOJ搜索专题之Robot Motion

水题……

View Code
 1 #include <stdio.h>

 2 #include <string.h>

 3 #define N 11

 4 char g[N][N];

 5 int t[N][N],n,m,k,cnt;

 6 int dx[128],dy[128];

 7 int main()

 8 {

 9   int i,j;

10   dx['E']=0,dx['W']=0;

11   dx['S']=1,dx['N']=-1;

12   dy['E']=1,dy['W']=-1;

13   dy['S']=0,dy['N']=0;

14   while(scanf("%d%d",&n,&m))

15   {

16     if(n==0)  break;

17     scanf("%d",&k);

18     for(i=0;i<n;i++)

19     {

20       getchar();

21       for(j=0;j<m;j++)

22       {

23         scanf("%c",&g[i][j]);

24       }

25     }

26     memset(t,-1,sizeof(t));

27     i=0,j=k-1;

28     cnt=0;

29     while(!(i<0 || j<0 || i>=n || j>=m) && t[i][j]==-1)

30     {

31       int oi=i,oj=j;

32       t[i][j]=cnt++;

33       i+=dx[g[oi][oj]];

34       j+=dy[g[oi][oj]];

35     }

36     if(i<0 || j<0 || i>=n || j>=m)  printf("%d step(s) to exit\n",cnt);

37     else printf("%d step(s) before a loop of %d step(s)\n",t[i][j],cnt-t[i][j]);

38   }

39   return 0;

40 }

 

你可能感兴趣的:(robot)