1. 程式人生 > >木塊問題 The Blocks Problem, UVa 101

木塊問題 The Blocks Problem, UVa 101

保存 ont blocks 要求 底部 指令 pan input problem

題目

從左到右有n個木塊,編號為0~n-1的木塊,要求模擬以下4種操作(下面的a和b都是木塊編號):

1、move a onto b:把木塊a、b上的木塊放回各自的原位,再把a放到b上;

2、move a over b:把a上的木塊放回各自的原位,再把a發到含b的堆上;

3、pile a onto b:把b上的木塊放回各自的原位,再把a連同a上的木塊移到b上;

4、pile a over b:把a連同a上木塊移到含b的堆上。

當輸入quit時,結束操作並輸出0~n-1的位置上的木塊列表,按照從底部到頂部的順序排列。(a和b在同一堆的指令是非法指令,應當忽略)

分析

每個木塊的高度不確定,所以用vector來保存很合適;而木塊堆的個數不超過n,所以用一個數組來存就可以了。

Sample Input / 輸入樣例

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

Sample Output / 輸出樣例

0: 0
1: 1 9 2 4
2:
3: 3
4:
5: 5 8 7 6
6:
7:
8:
9:

木塊問題 The Blocks Problem, UVa 101