2714: 堆积木

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:

题目描述

小明有n块积木,分别编号为0n-1。开始时,每块积木都独自占有一个固定的位置(即不会有叠放现象)。现在小明开始玩他的积木,有四种操作:

move a onto b:   先将ab上的积木放回原来的位置(即其编号对应的位置),然后再将a放到b上面
move a over b:  
先将a上的积木放回到原来的位置,然后将a放到b所在积木堆的顶部(b上的积木不动)
pile a onto b:  
先将b上的积木放回原来的位置,再将aa上的积木放到b
pile a over b:  
a本身和其上的积木一起搬到到b所在的那堆积木之上

(当输入的两个操作数ab在同一堆或相同时,视为无效命令,此时忽略命令)。

小明玩完积木后,就去看他很喜欢的卡通片了。现在给出他的所有操作,请你推测出每块积木最后所处位置。

输入

第一行一个整数n,表示积木块数。

接下来若干行,每行一个操作,如上所述。

最后一行为“quit”,表示读入结束。

 

输出

n行。第i+1行先是一个整数i,表示编号为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:

提示

数据范围:100%数据n<=25,操作总数不超过1000个。