POJ1573Robot Motion

http://poj.org/problem?id=1573

 1 #include<stdio.h>

 2 #include<stdlib.h>

 3 #include<cstring>

 4 

 5 int main()

 6 {

 7     int step[15][15],n,m,x,y,s;

 8     int visit[15][15];

 9     char map[15][15];

10     while(scanf("%d%d%d",&n,&m,&y),n||m||y)

11     {

12         /*for(int i=1;i<=n;i++)

13         {

14             scanf("%s",map[i]+1);

15         }*/

16        for(int i = 1 ; i <= n ; i ++)

17         {

18             getchar();//吃掉换行

19             for(int j = 1 ; j <= m ; j++)

20             {

21                 scanf("%c",&map[i][j]) ;

22             }

23         }

24         memset(visit,0,sizeof(visit));

25         s=0,x=1,visit[x][y]=1,step[x][y]=s;

26         while(1)

27         {

28             switch(map[x][y])

29             {

30                 case 'N': x--;break;

31                 case 'S': x++;break;

32                 case 'E': y++;break;

33                 case 'W': y--;break;

34             }

35             s++;

36             if(visit[x][y])

37             {

38                 printf("%d step(s) before a loop of %d step(s)\n",step[x][y], s-step[x][y]);

39                 break;

40             }

41             visit[x][y]=1;

42             step[x][y]=s;

43             if(x<1 || y<1 || x>n || y>m)

44             {

45                 printf("%d step(s) to exit\n",s);

46                 break;

47             }

48         }

49     }

50     return 0;

51 }
View Code

呜啦啦,又是模拟题,这个题又被虐了好长时间,不过倒是挺好做的感觉

你可能感兴趣的:(robot)