问题 6046 --机器人勇闯神秘岛

6046: 机器人勇闯神秘岛

时间限制: 1 Sec  内存限制: 32 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

ACM集训队实验室的楼上是机器人实验室,现在机器人实验室新来了一批机器人。

小东东很高兴,想去楼上去看看机器人。小灰灰说:“想看机器人先过了我这一关,嘿嘿。”

下面请听小灰灰描述他的关卡:

机器人勇闯神秘岛,小Robot是一个机器人,一天他被送到了一个神秘的岛屿之上,这个岛屿看起来像一个正方形,周围是高高的岩石,而且岛屿上充满了机关,还有散布着零星的巨石块。而且小Robot只能依稀的记得几组指令:向前走一步,左转向,右转向,后退一步。现在小Robot遇到了麻烦,由于忘记携带AI模块,只能远程请求你来控制,帮助小Robot勇闯神秘岛。接下来请让小Robot来描述一下神秘岛地图和规则。

一:神秘岛的地图大小为N*N

二:“#”代表石头,表示不能通过,“ ”空格代表可通过。

三:“整数”代表传送机关,传送机关只能对应传送(例如1只能传动到12只能传送到2),并且对应的传送机关只会成对出现,同一种传送阵最多只会出现两个。整数范围0~9

四:“N”,“S”,“W”,“E”。代表强制转向机关。会让小Robot强制面向北,南,西,东。并且不能改变方向。

五:“F”,“B”,“L”,“R”,是小Robot现在只能执行的命令。“F”向前走一步,“B”向后退一步,“L”是左转向,“R”是右转向。

已知小Robot每次都会被随机到不同的位置,而且每次小东东都会给他下达一串指令,现在呢,请你计算当小东东每次给小Robot下达一串指令之后,小Robot在神秘岛上的位置。


注:神秘岛地图

PS:
传送机关在传送的过程中不改变小Robot面朝的方向。并且当小Robot处在传送机关之上执行向前走一步或者向后退一步指令失败,而还在传送机关之上时就会再次被传送。在传送机关之上可以改变小Robot的方向,不用担心转向的时候被传送。

当小Robot处在强制转向机关之上时。强制转向机关会强制让小Robot面朝某方向,不会执行任何转向命令。只能执行前进或者后退命令。离开强制转向机关之后可以继续正常执行任何命令。

Robot初始位置只会在空地上。面朝的方向随机。

Robot只能执行前后行走的命令和左右转向的命令。

F=“向前走一步”     “LF=“先左转向,再向前走一步”=“向左走一步”。

地图方向请按照上北下南左西右东,“N=“北”,“S=“南”,“W=“西”,“E=“东”。

输入

只含有一组测试数据。第一行一个整数N5=<N<=12)表示神秘岛的大小。

接下来一个N*N的矩阵表示神秘岛的地图。

同题目背景描述,矩阵中“#”代表石头,“ ”代表可通过,“0”,“1”,“2”,…,“9”,代表传送阵。“N”,“S”,“W”,“E”,表示强制转向到相应的方向。

在接下来的一行两个整数XY。(1<=XY<=N)(XY)表示小Robot的起始位置。

再接下来一行一个字符“N”或者“W”、“E”、“S”,表示小Robot起始面朝的方向。

最后一行小东东下达的一组指令,只包含“F”,“B”,“L”,“R”。指令长度不会超过500

输出

请根据小东东指令计算小Robot最后处在位置的坐标,面朝的方向。输出坐标XY还有方向。

样例输入

9
#########
# 1     #
#  W #2 #
# 1 0   #
#    E# #
#  #    #
# #2    #
#     0 #
#########
4 4
E
FLFRBBBBRBFFRF

样例输出

4 6 W

来源

 

[提交][状态]