atcoder#ABC221G. [ABC221G] Jumping sequence

[ABC221G] Jumping sequence

問題文

無限に広がる 22 次元の座標平面を考えます。 高橋君は最初 (0,0)(0,0) に立っており、今から上下左右いずれかの方向を選んでジャンプすることを NN 回行います。 それぞれのジャンプで移動する距離は定まっており、具体的には ii 回目のジャンプでは距離 DiD_i を移動します。 NN 回のジャンプの後で、ちょうど位置 (A,B)(A,B) にいるようにすることは可能か判定し、 可能ならばそのような移動方法を 11 つ示してください。

ただし、現在の位置が (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)

制約

  • 1N20001 \leq N \leq 2000
  • A,B3.6×106\lvert A\rvert, \lvert B\rvert \leq 3.6\times 10^6
  • 1Di18001 \leq D_i \leq 1800
  • 入力は全て整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN AA BB

D1D_1 D2D_2 \ldots DND_N

出力

条件をみたす移動方法が存在するならば Yes 、そうでないならば No11 行目に出力せよ。 Yes の場合は 22 行目に条件をみたす移動方法を、U , D , L , R からなる長さ NN の文字列 SS として出力せよ。 ただし、SSii 文字目が

  • U のとき、 ii 回目のジャンプでは上方向に移動する
  • D のとき、 ii 回目のジャンプでは下方向に移動する
  • L のとき、 ii 回目のジャンプでは左方向に移動する
  • R のとき、 ii 回目のジャンプでは右方向に移動する

ことを指す。

3 2 -2
1 2 3
Yes
LDR

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 1 0
1 6
No

22 回のジャンプの後でちょうど (1,0)(1,0) にいるようにすることはできません。

5 6 7
1 3 5 7 9
Yes
LRLUR