#1915. 积木问题

积木问题

Description

从左到右有n个木块,编号从0到n-1,要求模拟以下4种操作(下面的a和b都是木块编号,归位表示让积木回到自身原来的位置,比如1号木块归到1号位去)。

move a onto b    把a和b上方的木块全部归位,然后把a摞在b上面。

move a over b    把a上方的全部归位,然后把a放在b所在木块堆的顶部。

pile a onto b       把b上方的木块全部归位,然后把a及上面的木块整体摞在b上面

pile a over b       把a及上面的木块整体摞在b所在木块堆的顶部。

遇到quit停止。a和b在同一堆的指令时非法指令,应当忽略。

最后输出每个位置的木块列表,按照从底部到顶部的顺序排列。

Input Format

第一行:n。
接下来若干行:每行一个指令(语法不会错),遇到quit停止。

Output Format

n行,第i行输出一个i和冒号,然后一个空格,输出,它位置上的所有积木。
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:

Hint

0 < n < 25。

Source

模拟