题目描述
すぬけ君の工場では,次のような特徴を持つ ロボットアーム を導入することになりました:
- ロボットアームは,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).
すぬけ君は,腕のモードをうまく指定することにより,N 個の点 (X1, Y1), (X2, Y2), ..., (XN, YN) のいずれにもロボットアームの関節 m をちょうど一致させられるようなロボットアームを導入したいです. このようなことは可能でしょうか? 可能ならば,条件を満たすロボットアームおよび,各点 (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 文字からなる文字列であり,点 (Xj, Yj) にロボットアームの関節 m を到達させる方法を表す. wj の i 文字目は L
, R
, D
, U
のいずれかの文字であり,腕 i のモードを表す.
题目大意
给定 n 组坐标。构造长度为 m 的序列 {cn} 和 n 组包含 LRUD
的路径,满足对于每一组坐标:
- ci 表示第 i 步「步长」。
- 对于每个坐标,从 (0,0) 开始走,共走 m 步。第 i 步可以让 (x,y) 变成 (x±ci,y) 或 (x,y±ci) 。
- 走完 m 次之后,恰好走到这组坐标。
- 要求 m≤40,ci≤1012 。
1≤n≤1000
3
-1 0
0 3
2 -1
2
1 2
RL
UU
DR
5
0 0
1 0
2 0
3 0
4 0
-1
2
1 1
1 1
2
1 1
RU
UR
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 が成り立つ.
Sample Explanation 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) $ です.
Sample Explanation 3
(Xj, Yj) の中に同じ点が含まれることもあります.