ccj与zrz之积木问题
题目背景
ccj和zrz无聊到了玩起了搭积木...(本题选自uva101,翻译来自《算法竞赛入门经典2》)
题目描述
从左到右有 $n$ 个木块,编号从 $0$ 到 $n-1$,要求模拟以下 $4$ 种操作(下面的 $a$ 和 $b$ 都是木块编号,归位表示比如 $1$ 号木块归到 $1$ 号位去)。
- $\texttt{move }a\texttt{ onto }b$:把 $a$ 和 $b$ 上方的木块全部归位,然后把 $a$ 摞在 $b$ 上面;
- $\texttt{move }a\texttt{ over }b$:把 $a$ 上方的全部归位,然后把 $a$ 放在 $b$ 所在木块堆的顶部;
- $\texttt{pile }a\texttt{ onto }b$:把 $b$ 上方的木块全部归位,然后把 $a$ 及上面的木块整体摞在 $b$ 上面;
- $\texttt{pile }a\texttt{ over }b$:把 $a$ 及上面的木块整体摞在 $b$ 所在木块堆的顶部;
- 遇到 $\texttt{quit}$ 停止。$a$ 和 $b$ 在同一堆的指令时非法指令,应当忽略。
最后输出每个位置的木块列表,按照从底部到顶部的顺序排列。
输入输出格式
输入格式
第一行一个整数 $n$。
接下来若干行:每行一个指令(语法不会错),遇到 $\texttt{quit}$ 停止。
输出格式
输出共 $n$ 行,第 $i$ 行输出一个 $i$ 和冒号,然后一个空格,输出,它位置上的所有积木。
输入输出样例
输入样例 #1
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
输出样例 #1
0: 0
1: 1 9 2 4
2:
3: 3
4:
5: 5 8 7 6
6:
7:
8:
9:
说明
### 数据范围及约定
对于全部数据,$0<n<25$。