AT_abc221_g [ABC221G] Jumping sequence
题目描述
考虑一个无限扩展的二维坐标平面。高桥君最初站在 $(0,0)$,接下来他将进行 $N$ 次跳跃,每次可以选择向上、下、左、右中的任意一个方向跳跃。每次跳跃的距离是确定的,具体来说,第 $i$ 次跳跃的距离为 $D_i$。请判断在 $N$ 次跳跃后,是否有可能恰好到达位置 $(A,B)$,如果可能,请给出一种满足条件的移动方案。
具体地,当当前位置为 $(X,Y)$ 时,选择某个方向并以距离 $D$ 跳跃后,落点如下:
- 向上:$(X,Y)\to(X,Y+D)$
- 向下:$(X,Y)\to(X,Y-D)$
- 向左:$(X,Y)\to(X-D,Y)$
- 向右:$(X,Y)\to(X+D,Y)$
输入格式
输入从标准输入读入,格式如下:
> $N$ $A$ $B$ $D_1$ $D_2$ $\ldots$ $D_N$
输出格式
如果存在满足条件的移动方案,则在第 $1$ 行输出 `Yes`,否则输出 `No`。
如果输出 `Yes`,则在第 $2$ 行输出一个由 `U`、`D`、`L`、`R` 组成的长度为 $N$ 的字符串 $S$,表示一种满足条件的移动方案。
其中,$S$ 的第 $i$ 个字符含义如下:
- `U`:第 $i$ 次跳跃向上
- `D`:第 $i$ 次跳跃向下
- `L`:第 $i$ 次跳跃向左
- `R`:第 $i$ 次跳跃向右
说明/提示
### 数据范围
- $1\leq N\leq 2000$
- $|A|, |B| \leq 3.6\times 10^6$
- $1\leq D_i\leq 1800$
- 输入均为整数。
### 样例解释 1
第 $1$ 次跳跃向左,第 $2$ 次跳跃向下,第 $3$ 次跳跃向右,则高桥君的移动为 $(0,0)\to(-1,0)\to(-1,-2)\to(2,-2)$,最终到达 $(2,-2)$,满足条件。
### 样例解释 2
经过 $2$ 次跳跃后,无法恰好到达 $(1,0)$。
由 ChatGPT 4.1 翻译