AT_abc221_g [ABC221G] Jumping sequence

Description

[problemUrl]: https://atcoder.jp/contests/abc221/tasks/abc221_g 無限に広がる $ 2 $ 次元の座標平面を考えます。 高橋君は最初 $ (0,0) $ に立っており、今から上下左右いずれかの方向を選んでジャンプすることを $ N $ 回行います。 それぞれのジャンプで移動する距離は定まっており、具体的には $ i $ 回目のジャンプでは距離 $ D_i $ を移動します。 $ N $ 回のジャンプの後で、ちょうど位置 $ (A,B) $ にいるようにすることは可能か判定し、 可能ならばそのような移動方法を $ 1 $ つ示してください。 ただし、現在の位置が $ (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) $

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A $ $ B $ $ D_1 $ $ D_2 $ $ \ldots $ $ D_N $

Output Format

条件をみたす移動方法が存在するならば `Yes` 、そうでないならば `No` を $ 1 $ 行目に出力せよ。 `Yes` の場合は $ 2 $ 行目に条件をみたす移動方法を、`U` , `D` , `L` , `R` からなる長さ $ N $ の文字列 $ S $ として出力せよ。 ただし、$ S $ の $ i $ 文字目が - `U` のとき、 $ i $ 回目のジャンプでは上方向に移動する - `D` のとき、 $ i $ 回目のジャンプでは下方向に移動する - `L` のとき、 $ i $ 回目のジャンプでは左方向に移動する - `R` のとき、 $ i $ 回目のジャンプでは右方向に移動する ことを指す。

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 2000 $ - $ \lvert\ A\rvert,\ \lvert\ B\rvert\ \leq\ 3.6\times\ 10^6 $ - $ 1\ \leq\ D_i\ \leq\ 1800 $ - 入力は全て整数である。 ### Sample Explanation 1 $ 1 $ 回目のジャンプで左方向に、$ 2 $ 回目のジャンプで下方向に、$ 3 $ 回目のジャンプで右方向にジャンプすると、 $ (0,0)\to(-1,0)\to(-1,-2)\to(2,-2) $ と高橋君は動き、 最終的に $ (2,-2) $ に到達しているためこれは条件をみたしています。 ### Sample Explanation 2 $ 2 $ 回のジャンプの後でちょうど $ (1,0) $ にいるようにすることはできません。