#P1208. The Blocks Problem
The Blocks Problem
题目描述
模拟一个机器人手臂操作积木世界的场景。初始时有个编号为到的积木按顺序排列在桌面上。需要处理以下命令:
-
move a onto b
- 将放到上
- 先将和上方的所有积木归位
-
move a over b
- 将放到所在堆的顶部
- 先将上方的所有积木归位
-
pile a onto b
- 将及其上方整个积木堆移动到上
- 先将上方的所有积木归位
- 保持上方积木的原有顺序
-
pile a over b
- 将及其上方整个积木堆移动到所在堆的顶部
- 保持上方积木的原有顺序
-
quit
- 终止程序
注意:
- 当或和在同一堆时,命令无效
- 积木数量
输入格式
- 第一行:积木数量
- 后续若干行:操作指令,直到出现
quit
命令
输出格式
输出最终每个位置的积木堆状态(共行),格式为:
i: b1 b2 ...
(无行末空格)
样例输入
10
move 9 onto 1
move 8 over 1
move 7 over 1
move 6 over 1
pile 8 over 6
pile 8 over 5
move 2 over 1
move 4 over 9
quit
样例输出
0: 0
1: 1 9 2 4
2:
3: 3
4:
5: 5 8 7 6
6:
7:
8:
9:
题目来源
1990年杜克大学程序设计竞赛(UVA 101)