logo AlgoBeat OnlineJudge
登录 注册

#214880. [CCPC 2024 哈尔滨站] 在哈尔滨指路

内存限制:1024 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

在指路的时候,一些地区的人更习惯按绝对方位指路,比如:「往南走到第二个路口,再往东走到第一个路口就到了。」然而由于哈尔滨城市路网规划十分复杂,很多街道并不是正方位朝向的,因此如果你按照绝对方位给长期生活在哈尔滨的人指路的话,他很可能因为不习惯找方位而弄不清你所指的位置。

在哈尔滨,人们更习惯使用相对方位来指路,比如指引同样的位置,哈尔滨人会首先让你朝向南,并告诉你:「沿路捡直(直行)走到第二个路口,左拐,再捡直走到第一个路口就到了。」

为了应对这种差异,你准备写一个程序,将按绝对方位的指路方式转化为哈尔滨人习惯的指路方式。当然,如果直接使用哈尔滨的地图的话就太复杂了,所以本题中你可以认为地图是一个无限大的网格形状。

输入格式

第一行一个整数 (),表示测试数据组数。

对于每组测试数据,第一行一个整数 (),表示指路指令的个数。

接下来 行,每行按照绝对位置描述一个指令,包含一个字符 () 和一个整数 (),表示「往 方位走到第 个路口」。其中 表示向北, 表示向南, 表示向西, 表示向东。

保证相邻两个指令中 不相同且不相反(北与南互相相反,西与东互相相反)。

输出格式

对于每组数据,第一行输出一个整数 () 和一个字符 (),分别表示按哈尔滨人习惯的指路方式的指令条数和初始面向的方位,方位的含义同输入中描述。

接下来输出 行,每行首先输出一个字符 ,其中 表示直走, 表示左转, 表示右转。如果输出的字符为 ,此行还需输出一个整数 () 表示直走到第 个路口。第一个输出的指令必须以 开头,输出中相邻两个指令的字符 不能相同,并且 指令和 指令不能相邻。

本题中你无需最小化 ,如果有多种方案可以到达同一目的地,输出任意一个均可。

样例

样例输入 1

1
2
S 2
E 1

样例输出 1

3 S
Z 2
L
Z 1