8790: BZOJ4790:[CERC2016]Dancing Disks

Memory Limit:512 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Luka非常擅长解决汉诺塔问题,他发明了一种类似汉诺塔的使用盘子和柱子的游戏。这个游戏有n个不同大小的盘 子以及36根柱子。盘子按照大小从小到大依次被编号为1到n。柱子形成了6行6列的矩阵,从上到下每行依次被编号 为1到6,从左到右每列依次被编号为1到6。 游戏一开始,n个盘子都被堆叠在左上角坐标为(1,1)的柱子上。对于每一次操作,玩家可以选择一个柱子,取出最 顶上若干个盘子,然后选择右边或者下面的某个柱子,将取出的盘子全部堆叠在其顶上(不会翻转顺序)。游戏的 目标是把所有盘子都移动到(6,6),且自底向上大小依次递减。 给定游戏的初始局面,请找到任意一组玩通关的方法。数据保证解必定存在。


输入格式

第一行包含一个正整数n(1<=n<=40000),表示盘子的数目。 第二行包含n个正整数d_1,d_2,...,d_n(1<=d_i<=n),自底向上表示(1,1)柱子上每个盘子的编号。 输入数据保证不存在两个盘子的编号相同。


输出格式

输出m行,m表示你的解中游戏操作的次数。 其中第i行包含4个参数r_i,c_i,p_i,n_i,表示第i步操作 即你选择了(r_i,c_i)最上方的n_i(n_i>=1)个盘子,然后往p_i方向移动。 如果向右移动,那么p_i为“R”(不含引号);如果向下移动,那么p_i为“D”(不含引号)。 若有多组方案,输出任意一组。


样例输入

6
1 6 5 4 3 2

样例输出

1 1 D 6
2 1 D 6
3 1 D 6
4 1 D 6
5 1 D 6
6 1 R 6
6 2 R 6
6 3 R 6
6 4 R 6
6 5 R 5
6 5 R 1

提示

没有写明提示


题目来源

没有写明来源

加入题单

算法标签: