题目描述
在すぬけ君的工厂里,计划引进一种具有以下特性的机器人手臂:
- 机器人手臂由 m 个手臂和 m+1 个关节组成。手臂编号为 1,2,...,m,关节编号为 0,1,...,m。手臂 i 连接关节 i−1 和关节 i。手臂 i 的长度为 di。
- 每个手臂都可以独立指定模式。模式可以是
L、R、D、U 中的任意一个,手臂的模式决定了该手臂的方向。将工厂视为坐标平面时,关节 i 的坐标 (xi,yi) 按如下方式确定:
- (x0,y0)=(0,0)。
- 当手臂 i 的模式为
L 时,(xi,yi)=(xi−1−di,yi−1)。
- 当手臂 i 的模式为
R 时,(xi,yi)=(xi−1+di,yi−1)。
- 当手臂 i 的模式为
D 时,(xi,yi)=(xi−1,yi−1−di)。
- 当手臂 i 的模式为
U 时,(xi,yi)=(xi−1,yi−1+di)。
すぬけ君希望通过巧妙地指定手臂的模式,使得机器人手臂的关节 m 能恰好到达 N 个点 (X1,Y1),(X2,Y2),...,(XN,YN) 中的任意一个。请判断是否存在这样的机器人手臂。如果存在,请给出满足条件的机器人手臂,以及对于每个点 (Xj,Yj),使机器人手臂的关节 m 到达该点的模式指定方法。
输入格式
输入按以下格式从标准输入读入。
N
X1 Y1
X2 Y2
⋮
XN YN
输出格式
如果存在满足条件的方案,请按以下格式输出。如果不存在,输出 -1。
m
d1 d2 … dm
w1
w2
⋮
wN
其中,m 和 di 表示机器人手臂的信息,具体含义见题目描述。要求 1≤m≤40,1≤di≤1012,且 m,di 均为整数。
wj 是长度为 m 的字符串,表示使机器人手臂的关节 m 到达点 (Xj,Yj) 的模式指定方法。wj 的第 i 个字符为 L、R、D、U 中的一个,表示手臂 i 的模式。
样例 1
输入
3
-1 0
0 3
2 -1
输出
2
1 2
RL
UU
DR
样例 2
输入
5
0 0
1 0
2 0
3 0
4 0
输出
-1
样例 3
输入
2
1 1
1 1
输出
2
1 1
RU
UR
样例 4
输入
3
-7 -3
7 3
-3 -7
输出
5
3 1 4 1 5
LRDUL
RDULR
DULRD
说明/提示
限制条件
- 输入均为整数。
- 1≤N≤1000
- −109≤Xi≤109
- −109≤Yi≤109
部分得分
- 对于 300 分的测试点,有 −10≤Xi≤10 且 −10≤Yi≤10。
样例解释 1
对于每个 (Xj,Yj),使机器人手臂的关节 m 到达该点的方法如下:
- 对于 (X1,Y1)=(−1,0),首先关节 0 的位置为 (x0,y0)=(0,0)。手臂 1 的模式为
R,所以关节 1 的位置为 (x1,y1)=(1,0)。手臂 2 的模式为 L,所以关节 m=2 的位置为 (x2,y2)=(−1,0)。
- 对于 (X2,Y2)=(0,3),$(x\_0, y\_0) = (0, 0), (x\_1, y\_1) = (0, 1), (x\_2, y\_2) = (0, 3)$。
- 对于 (X3,Y3)=(2,−1),$(x\_0, y\_0) = (0, 0), (x\_1, y\_1) = (0, -1), (x\_2, y\_2) = (2, -1)$。
样例解释 3
(Xj,Yj) 中可能包含相同的点。
由 ChatGPT 4.1 翻译