#aBC221G. [ABC221G] Jumping sequence

[ABC221G] Jumping sequence

AT_abc221_g [ABC221G] Jumping sequence

题目描述

考虑一个无限扩展的二维坐标平面。高桥君最初站在 (0,0)(0,0),接下来他将进行 NN 次跳跃,每次可以选择向上、下、左、右中的任意一个方向跳跃。每次跳跃的距离是确定的,具体来说,第 ii 次跳跃的距离为 DiD_i。请判断在 NN 次跳跃后,是否有可能恰好到达位置 (A,B)(A,B),如果可能,请给出一种满足条件的移动方案。

具体地,当当前位置为 (X,Y)(X,Y) 时,选择某个方向并以距离 DD 跳跃后,落点如下:

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

输入格式

输入从标准输入读入,格式如下:

NN AA BB D1D_1 D2D_2 \ldots DND_N

输出格式

如果存在满足条件的移动方案,则在第 11 行输出 Yes,否则输出 No
如果输出 Yes,则在第 22 行输出一个由 UDLR 组成的长度为 NN 的字符串 SS,表示一种满足条件的移动方案。
其中,SS 的第 ii 个字符含义如下:

  • U:第 ii 次跳跃向上
  • D:第 ii 次跳跃向下
  • L:第 ii 次跳跃向左
  • R:第 ii 次跳跃向右

输入输出样例 #1

输入 #1

3 2 -2
1 2 3

输出 #1

Yes
LDR

输入输出样例 #2

输入 #2

2 1 0
1 6

输出 #2

No

输入输出样例 #3

输入 #3

5 6 7
1 3 5 7 9

输出 #3

Yes
LRLUR

说明/提示

数据范围

  • 1N20001\leq N\leq 2000
  • A,B3.6×106|A|, |B| \leq 3.6\times 10^6
  • 1Di18001\leq D_i\leq 1800
  • 输入均为整数。

样例解释 1

11 次跳跃向左,第 22 次跳跃向下,第 33 次跳跃向右,则高桥君的移动为 (0,0)(1,0)(1,2)(2,2)(0,0)\to(-1,0)\to(-1,-2)\to(2,-2),最终到达 (2,2)(2,-2),满足条件。

样例解释 2

经过 22 次跳跃后,无法恰好到达 (1,0)(1,0)

由 ChatGPT 4.1 翻译