#Z0505105. 机器人的移动(二)

机器人的移动(二)

题目描述

给你一个在 XY 平面上的 w x h 的网格图,左下角的格子为 (0, 0) ,右上角 的格子为 (w - 1, h - 1) 。网格图中相邻格子为四个基本方向之一("North","East","South" 和 "West")。一个机器人 初始 在格子 (0, 0) ,方向为 "East" 。

机器人可以根据指令移动指定的 步数 。每一步,它可以执行以下操作。

1、沿着当前方向尝试 往前一步 。 如果机器人下一步将到达的格子 超出了边界 ,机器人会 逆时针 转 90 度,然后再尝试往前一步。 如果机器人完成了指令要求的移动步数,它将停止移动并等待下一个指令。

你会对机器人进行M个操作: 机器人初始在 (0, 0) ,方向朝 "East" 。
指令“step” 给机器人下达前进 num 步的指令。
指令 “getPos”返回机器人当前所处的格子位置。

指令“getDir”返回当前机器人的朝向,为 "North" ,"East" ,"South" 或者 "West" 。

image

输入格式

输入两个整数,w和h 输入一个整数m,表示下达命令的次数。 接下来m行,为下达的一系列指令。

输出格式

根据操作输出对应信息

6 3
9
step 2
step 2
getPos
getDir
step 2
step 1
step 4
getPos
getDir
4 0
East
1 2
West

数据规模

2 <= w, h <= 100
1 <= num <= 10510^5
step ,getPos 和 getDir 总共 调用次数不超过 10410^4