#P1573. B-Robot Motion

B-Robot Motion

本题没有可用的提交语言。

描述

image

一个机器人已经被编程在它的路径上遵循指令。机器人下一个移动方向的指令被放置在一个网格中。可能的指令是

N向北(页面向上)

S向南(页面向下)

E向东(页面右侧)

W向西(页面左侧)

例如,假设机器人从网格1的北面(顶部)开始,并从南面(向下)开始。显示了机器人所遵循的路径。机器人在离开栅格之前要完成10个指令。

对比网格2中发生的情况:机器人只执行一次3条指令,然后通过8条指令开始一个循环,并且永远不会退出。

你要写一个程序,决定机器人离开网格需要多长时间,或者机器人如何绕圈。

输入

将有一个或多个网格供机器人导航。每种数据如下表所示。第一行是三个用空格分隔的整数:网格中的行数,网格中的列数,以及机器人从北方进入的列数。可能的输入列从左边的1开始编号。然后是方向指示的行。每个网格将有至少一个,最多10行和列的指令。指令行只能包含字符NSEWN、S、E、W,不能有空格。输入的结束由包含0 0 0的行表示。

输出

对于输入中的每个网格有一行输出。机器人要么遵循一定数量的指令并在四边的任意一边退出网格,要么机器人在一定数量的位置上遵循一次指令,然后在某些位置上重复执行指令。下面的示例输入对应于上面的两个网格,并说明了两种形式的输出。“step”后面总是紧接“(s)”,不管它前面的数字是否为1。

3 6 5
NEESWE
WWWESS
SNWWWW
4 5 1
SESWE
EESNW
NWEEN
EWSEN
0 0 0
10 step(s) to exit
3 step(s) before a loop of 8 step(s)

来源

美国中南部1999