#futurecontest2021quala. [future_contest_2021_qual_a]カードの回収

[future_contest_2021_qual_a]カードの回収

问题文本

问题描述

在一个20×2020\times 20的棋盘上,放置了100张卡片。每个格子最多只能放置一张卡片。每张卡片上写有数字0,1,,990, 1, \ldots, 99,相同数字的卡片只有一张。

你的目标是使用高桥君机器人来收集所有的卡片,并且最终收集到的卡片堆(称为牌组)从下往上依次是0,1,,990, 1, \ldots, 99。你可以通过给高桥君机器人以下命令序列来操作它:

  • U: 向上移动一格。如果当前位置已经是棋盘的最上方,则此操作无效。
  • D: 向下移动一格。如果当前位置已经是棋盘的最下方,则此操作无效。
  • L: 向左移动一格。如果当前位置已经是棋盘的最左边,则此操作无效。
  • R: 向右移动一格。如果当前位置已经是棋盘的最右边,则此操作无效。
  • I: 收集当前位置的卡片,并将其放置在牌组顶部。如果当前位置没有卡片,则此操作无效。
  • O: 将牌组顶部的卡片放置在当前位置。如果牌组中没有卡片或者当前位置已经有卡片存在,则此操作无效。

高桥君机器人初始状态下位于左上角的格子上,并且牌组中没有任何卡片。完成所有命令序列后,如果牌组中的卡片从下往上依次是0,1,,990, 1, \ldots, 99,则任务成功。请使用尽量少的移动命令(U,D,L,R)来成功完成任务。

假设移动命令的次数为kk,得分为4000k4000-k。请注意,收集和放置卡片(I,O)的次数不影响得分。当kk超过4000、命令序列长度超过10000、执行了无效操作或任务失败时,得分为0。

操作示例

高桥君机器人位于左上角的格子上,执行操作序列RRDDIUULLIRI后,按顺序收集了卡片0、1、2,移动命令的总数为9。

另一种方法是执行操作序列IRIRODO,首先按顺序收集卡片1、2,然后通过重新放置卡片的方式使其变为卡片2、1,如下图所示:

接下来,执行操作序列DIUIUI,按顺序收集了卡片0、1、2,移动命令的总数比之前少,只有6。


输入

输入以以下格式从标准输入中给出。

x0x_0 y0y_0 x1x_1 y1y_1 \vdots x99x_{99} y99y_{99}

其中,数字ii表示的卡片被放置在左上角的格子向下移动xix_i格,向右移动yiy_i格的位置上,0xi,yi190\leq x_i,y_i\leq 19

输出

输出操作高桥君机器人的命令序列,不包含空格和换行符,直接输出在一行中。

输入生成方法

卡片的放置位置是随机生成的。具体而言,将长度为400的坐标序列(0,0),(0,1),,(19,19)(0,0),(0,1),\ldots ,(19,19)进行随机洗牌,然后将第ii个坐标位置放置数字ii的卡片。


输入示例 1

15 19
8 1
3 13
2 19
17 10
14 3
3 2
19 4
6 2
18 1
4 4
3 10
0 15
2 5
10 7
6 3
19 12
1 0
19 3
4 1
0 6
10 18
12 12
8 13
6 4
10 2
6 12
2 0
0 11
6 9
8 3
13 9
9 0
11 17
9 4
12 1
1 18
19 19
9 9
2 11
8 19
18 3
2 15
8 16
16 2
4 5
14 4
9 3
15 13
3 0
8 11
15 4
0 7
12 19
18 7
12 17
8 2
6 0
1 7
17 0
16 10
1 6
10 5
4 14
12 7
6 11
6 6
14 19
15 15
17 16
1 12
7 9
2 7
4 7
1 4
5 3
0 17
17 3
5 13
9 16
12 13
11 12
15 18
0 10
19 6
12 4
10 8