#ABC111D. 机械臂

机械臂

机械臂

题目描述

Snuke 打算把具有以下性质的机械臂引入他的工厂:

机械臂由 mm 段和 m+1m+1 个关节组成。段编号为 1,2,...,m1, 2, ..., m,关节编号为 0,1,...,m0, 1, ..., m。段 ii 连接关节 i1i-1 和关节 ii。段 ii 的长度为 did_i

每一段可以单独指定模式。共有四种模式:L、R、D 和 U。段的模式决定该段的方向。如果把工厂看作坐标平面,关节 ii 的位置按如下方式确定(记其坐标为 (xi,yi)(x_i, y_i)):

  • (x0,y0)=(0,0)(x_0, y_0) = (0, 0)
  • 若段 ii 的模式为 L,则 (xi,yi)=(xi1di,yi1)(x_i, y_i) = (x_{i-1} - d_i, y_{i-1})
  • 若段 ii 的模式为 R,则 (xi,yi)=(xi1+di,yi1)(x_i, y_i) = (x_{i-1} + d_i, y_{i-1})
  • 若段 ii 的模式为 D,则 (xi,yi)=(xi1,yi1di)(x_i, y_i) = (x_{i-1}, y_{i-1} - d_i)
  • 若段 ii 的模式为 U,则 (xi,yi)=(xi1,yi1+di)(x_i, y_i) = (x_{i-1}, y_{i-1} + d_i)

Snuke 希望通过适当指定各段的模式,使关节 mm 的位置能够与给定的所有 NN 个点 (X1,Y1),(X2,Y2),...,(XN,YN)(X_1, Y_1), (X_2, Y_2), ..., (X_N, Y_N) 匹配。这是否可能?

如果可能,请找出这样的机械臂构造,以及将关节 mm 移到每个点 (Xj,Yj)(X_j, Y_j) 的方式。

输入格式

输入按以下格式从标准输入给出:

NN
X1X_1 Y1Y_1
X2X_2 Y2Y_2
::
XNX_N YNY_N

输出格式

如果条件可以满足,按以下格式输出。如果无法满足,输出 -1

mm
d1d_1 d2d_2 ...... dmd_m
w1w_1
w2w_2
::
wNw_N

这里,mmdid_i 是机械臂的构造。各参数的含义参见题目描述。必须满足 1m401 \leq m \leq 40,1di10121 \leq d_i \leq 10^{12},且 mmdid_i 都必须是整数。

wjw_j 是长度为 mm 的字符串,表示将机械臂的关节 mm 移到点 (Xj,Yj)(X_j, Y_j) 的方式。wjw_j 的第 ii 个字符应为 L、R、D、U 之一,表示段 ii 的模式。

样例

3
-1 0
0 3
2 -1
2
1 2
RL
UU
DR

按照给出的方式把机械臂的关节 mm 移到各 (Xj,Yj)(X_j, Y_j) 时,各关节的位置如下:

  • (X1,Y1)=(1,0)(X_1, Y_1) = (-1, 0):首先,关节 00 的位置为 (x0,y0)=(0,0)(x_0, y_0) = (0, 0)。由于段 11 的模式为 R,关节 11 的位置为 (x1,y1)=(1,0)(x_1, y_1) = (1, 0)。接着,由于段 22 的模式为 L,关节 22 的位置为 (x2,y2)=(1,0)(x_2, y_2) = (-1, 0)
  • (X2,Y2)=(0,3)(X_2, Y_2) = (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_3, Y_3) = (2, -1):$(x_0, y_0) = (0, 0), (x_1, y_1) = (0, -1), (x_2, y_2) = (2, -1)$
5
0 0
1 0
2 0
3 0
4 0
-1
2
1 1
1 1
2
1 1
RU
UR

(Xj,Yj)(X_j, Y_j) 中可能存在重复点。

3
-7 -3
7 3
-3 -7
5
3 1 4 1 5
LRDUL
RDULR
DULRD

数据范围

  • 输入均为整数
  • 1N10001 \leq N \leq 1000
  • 109Xi109-10^9 \leq X_i \leq 10^9
  • 109Yi109-10^9 \leq Y_i \leq 10^9
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
1641
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签