#P16753. [GKS 2020 #B] Robot Path Decoding
[GKS 2020 #B] Robot Path Decoding
题目描述
你们国家的航天局刚刚在一颗新行星上着陆了一辆火星车。行星表面可以看作是一个包含 列(从西到东编号为 开始)和 行(从北到南编号为 开始)的方格网格。记 表示第 列、第 行的方格。火星车从方格 出发。
火星车可以通过发送程序来操控,程序包含一个字符串,字符串中的字符代表四个基本方向的移动。机器人按顺序执行字符串中的每个字符。火星车的移动规则如下:
N:向北移动一个单位。S:向南移动一个单位。E:向东移动一个单位。W:向西移动一个单位。
此外,还有一种特殊指令 ,其中 是 到 (包含两端)之间的数字, 是一个非空子程序。该指令表示机器人应重复执行子程序 共 次。例如:
2(NWE)等价于NWENWE。3(S2(E))等价于SEESEESEE。EEEE4(N)2(SS)等价于EEEEENNNNSSSS。
由于行星是一个球体,第一列和最后一列相邻,因此从第 列向东移动会使火星车移动到第 列,从第 行向南移动会使火星车移动到第 行。类似地,从第 列向西移动会使火星车移动到第 列,从第 行向北移动会使火星车移动到第 行。给定一个机器人将要执行的程序,请确定机器人完成所有移动后的最终位置。
输入格式
输入的第一行给出测试用例的数量 。接下来有 行,每行包含一个字符串:发送给火星车的程序。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: w h,其中 是测试用例编号(从 开始), 和 是机器人最终所在的方格 。
4
SSSEEE
N
N3(S)N2(E)N
2(3(NW)2(W2(EE)W))
Case #1: 4 4
Case #2: 1 1000000000
Case #3: 3 1
Case #4: 3 999999995
提示
在样例 #1 中,火星车向南移动三格,然后向东移动三格。
在样例 #2 中,火星车向北移动一格。由于行星是一个环面,这会将其移动到第 行。
在样例 #3 中,发给火星车的程序等价于 NSSSNEEN。
在样例 #4 中,发给火星车的程序等价于 NWNWNWWEEEEWWEEEEWNWNWNWWEEEEWWEEEEW。
限制条件
。
字符串表示一个有效的程序。
每个程序的长度在 到 个字符之间(包含两端)。
测试集 1
单个测试用例中机器人执行的总移动步数不超过 。
测试集 2
无额外限制。
翻译由 DeepSeek V4 Pro 完成