C - Back and Forth Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 300

問題文

イルカは x 軸正方向を右、y 軸正方向を上とする 2 次元座標平面にいます。
イルカは現在点 (sx,sy) にいて、1 秒あたり上下左右に距離 1 だけ進むことができます。
このとき、移動前と移動後の x 座標、y 座標はともに整数でなければなりません。
イルカはここから sx < txsy < ty を満たす点 (tx,ty) に行き、その後点 (sx,sy) に戻り、また点 (tx,ty) に行き、その後点 (sx,sy) に戻ります。
このとき、イルカは点 (sx,sy) と点 (tx,ty) を除いて、途中で同じ座標を複数回通らないように移動しなければなりません。
このような条件を満たすイルカの最短経路を 1 つ求めてください。

制約

  • -1000≦ sx < tx ≦1000
  • -1000≦ sy < ty ≦1000
  • sx,sy,tx,ty は整数である。

入力

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

sx sy tx ty

出力

イルカの最短経路を表す文字列 S を出力せよ。
Si 番目の文字はイルカの i 番目の移動を表す。
イルカの各方向への移動を表す文字の対応関係は以下のとおりである。

  • U: 上方向
  • D: 下方向
  • L: 左方向
  • R: 右方向

条件を満たすような最短経路が複数ある場合、そのうちどれか 1 つを出力せよ。


入力例 1

0 0 1 2

出力例 1

UURDDLLUUURRDRDDDLLU

以下に示す移動経路が最短経路の 1 つです。

  • 1 回目の (sx,sy) から (tx,ty) への移動: (0,0)(0,1)(0,2)(1,2)
  • 1 回目の (tx,ty) から (sx,sy) への移動: (1,2)(1,1)(1,0)(0,0)
  • 2 回目の (sx,sy) から (tx,ty) への移動: (0,0)(-1,0)(-1,1)(-1,2)(-1,3)(0,3)(1,3)(1,2)
  • 2 回目の (tx,ty) から (sx,sy) への移動: (1,2)(2,2)(2,1)(2,0)(2,-1)(1,-1)(0,-1)(0,0)

入力例 2

-2 -2 1 1

出力例 2

UURRURRDDDLLDLLULUUURRURRDDDLLDL

Score : 300 points

Problem Statement

Dolphin resides in two-dimensional Cartesian plane, with the positive x-axis pointing right and the positive y-axis pointing up.
Currently, he is located at the point (sx,sy). In each second, he can move up, down, left or right by a distance of 1.
Here, both the x- and y-coordinates before and after each movement must be integers.
He will first visit the point (tx,ty) where sx < tx and sy < ty, then go back to the point (sx,sy), then visit the point (tx,ty) again, and lastly go back to the point (sx,sy).
Here, during the whole travel, he is not allowed to pass through the same point more than once, except the points (sx,sy) and (tx,ty).
Under this condition, find a shortest path for him.

Constraints

  • -1000 ≤ sx < tx ≤ 1000
  • -1000 ≤ sy < ty ≤ 1000
  • sx,sy,tx and ty are integers.

Input

The input is given from Standard Input in the following format:

sx sy tx ty

Output

Print a string S that represents a shortest path for Dolphin.
The i-th character in S should correspond to his i-th movement.
The directions of the movements should be indicated by the following characters:

  • U: Up
  • D: Down
  • L: Left
  • R: Right

If there exist multiple shortest paths under the condition, print any of them.


Sample Input 1

0 0 1 2

Sample Output 1

UURDDLLUUURRDRDDDLLU

One possible shortest path is:

  • Going from (sx,sy) to (tx,ty) for the first time: (0,0)(0,1)(0,2)(1,2)
  • Going from (tx,ty) to (sx,sy) for the first time: (1,2)(1,1)(1,0)(0,0)
  • Going from (sx,sy) to (tx,ty) for the second time: (0,0)(-1,0)(-1,1)(-1,2)(-1,3)(0,3)(1,3)(1,2)
  • Going from (tx,ty) to (sx,sy) for the second time: (1,2)(2,2)(2,1)(2,0)(2,-1)(1,-1)(0,-1)(0,0)

Sample Input 2

-2 -2 1 1

Sample Output 2

UURRURRDDDLLDLLULUUURRURRDDDLLDL