#P16330. [Ucpc2024]Rolling Rick
[Ucpc2024]Rolling Rick
题目描述
桌面上放着一张宽为 、高为 的长方形纸。纸上放着一个长方体 Rick,其宽、深、高分别为 。
初始时,Rick 底面的左边和上边分别与纸张的左边和上边重合。
你可以让 Rick 向右或向下滚动:
- 向右滚动时,以当前底面的右侧棱为轴向右旋转;
- 向下滚动时,以当前底面的下侧棱为轴向下旋转。
Rick 的所有表面都沾有不会干的油漆,因此每当 Rick 与纸面接触时,对应区域都会被涂上油漆。为了保持桌面整洁,任何一次滚动都不能让 Rick 超出纸张范围。
请通过若干次向右或向下滚动,使 Rick 最终底面的右边和下边分别与纸张的右边和下边重合,并最大化纸上被油漆覆盖的区域面积。
输入格式
一行输入五个整数 ,分别表示 Rick 的三个边长以及纸张的宽和高。
且满足 、。
所有输入均为整数。
输出格式
若无法把 Rick 移动到右下角,输出一行 -1。
否则:
- 第一行输出纸张被油漆覆盖的最大面积;
- 第二行输出一个只由
R和D组成的字符串,表示一种达到最大面积的滚动方案。
其中:
R表示向右滚动;D表示向下滚动。
若有多种最优方案,输出任意一种。
样例 1
输入
1 1 1 24 10
输出
33
RRRRRRRRRRRRRRRRRRRRRRRDDDDDDDDD
样例 2
输入
3 4 5 6 7
输出
-1
样例 3
输入
3 4 5 12 12
输出
79
RDRD
说明
下图展示了样例 3 中 Rick 的滚动过程。

样例 3 中 Rick 的滚动示意图
在该样例中,也可以按“下、右、下、右”的顺序滚动,但这样被油漆覆盖的面积为 ,不是最优方案。