#abc221g. [abc221_g]Jumping sequence

[abc221_g]Jumping sequence

题目描述

考虑一个无限的二维坐标平面。高桥最初站在 (0,0)(0,0) 处,他会做 NN 次跳跃,每次可以选择四个方向之一:上、下、左、右。每次跳跃的长度是固定的。具体来说,第 ii 次跳跃的距离应为 DiD_i。判断是否可能在经过 NN 次跳跃后恰好到达 (A,B)(A, B),如果可能,请给出一种方法。

这里,对于每个方向,从 (X,Y)(X, Y) 起点进行长度为 DD 的跳跃将导致移动到以下位置:

  • 上:(X,Y)to(X,Y+D)(X,Y) \\to (X,Y+D)
  • 下:(X,Y)to(X,YD)(X,Y) \\to (X,Y-D)
  • 左:(X,Y)to(XD,Y)(X,Y) \\to (X-D,Y)
  • 右:(X,Y)to(X+D,Y)(X,Y) \\to (X+D,Y)

约束条件

  • 1N20001 \leq N \leq 2000
  • A,B3.6×106|A|, |B| \leq 3.6 \times 10^6
  • 1Di18001 \leq D_i \leq 1800
  • 输入中的所有值都是整数。

输入

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

NN AA BB D1D_1 D2D_2 \ldots DND_N

输出

第一行,如果存在所需的跳跃顺序,则打印 Yes;否则打印 No
对于 Yes 的情况,将第二行打印为长度为 NN 且由 UDLR 组成的字符串 SS,如下所示:

  • 如果第 ii 次跳跃向上,则 SS 的第 ii 个字符应为 U
  • 如果第 ii 次跳跃向下,则 SS 的第 ii 个字符应为 D
  • 如果第 ii 次跳跃向左,则 SS 的第 ii 个字符应为 L
  • 如果第 ii 次跳跃向右,则 SS 的第 ii 个字符应为 R

示例输入 1

3 2 -2
1 2 3

示例输出 1

Yes
LDR

如果按照跳跃顺序:左、下、右,高桥移动 (0,0)to(1,0)to(1,2)to(2,2)(0,0)\\to(-1,0)\\to(-1,-2)\\to(2,-2),最终到达 (2,2)(2, -2),符合要求。


示例输入 2

2 1 0
1 6

示例输出 2

No

无法在两次跳跃后到达 (1,0)(1, 0)


示例输入 3

5 6 7
1 3 5 7 9

示例输出 3

Yes
LRLUR