#3489. 运动指令

运动指令

题目描述

一个室内清洁机器人在一间房子里工作。房子的平面图可以简化为一个二维网格,我们可以在这个网格上为机器人建立一个虚拟的xy坐标系,称为绝对坐标系。机器人的初始位置在网格的左下角,它正面的方向为x轴正方向,即向右。

任务描述: 机器人根据接收到的指令在房间内移动。指令包括向前走、向后走、向左转、向右转、向上走(即向上一楼层移动)和向下走(即向下一楼层移动)。机器人可以在多个楼层之间移动,每个楼层都可以视为一个相同的二维网格。请根据机器人对自己在相对方向上移动的描述确定机器人最终的绝对坐标和面向的绝对方向。

指令说明:

  • forward x:向前走x步。
  • back x:向后走x步。
  • left x:向左转90度,然后向前走x步。
  • right x:向右转90度,然后向前走x步。
  • up x:向上走到上一层楼,然后在新的楼层上向前走x步。
  • down x:向下走到下一层楼,然后在新的楼层上向前走x步。

输入格式

  • 输入:第一行一个正整数m,表示测试数据的组数。每组测试数据第一行是一个正整数n(1<=n<=10000),表示机器人行走的次数。接下来n行,每行输入一次相对行走指令,格式如上所述(1<=x<=10000)。

输出格式

  • 输出:对于每组输入数据输出一行,格式为 x y z p,其中x y z是机器人的位置的绝对坐标,z表示楼层数,初始时为0;p是机器人面向的绝对方向编号(0表示向右,1表示向上,2表示向左,3表示向下)。
1
6
left 10
right 11
up 12
down 13
forward 14
back 15
23 -10 12 3

提示