#P1208. The Blocks Problem

    ID: 209 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>模拟Duke Internet Programming Contest 1990uva 101

The Blocks Problem

题目描述

模拟一个机器人手臂操作积木世界的场景。初始时有nn个编号为00n1n-1的积木按顺序排列在桌面上。需要处理以下命令:

  1. move a onto b

    • aa放到bb
    • 先将aabb上方的所有积木归位
  2. move a over b

    • aa放到bb所在堆的顶部
    • 先将aa上方的所有积木归位
  3. pile a onto b

    • aa及其上方整个积木堆移动到bb
    • 先将bb上方的所有积木归位
    • 保持aa上方积木的原有顺序
  4. pile a over b

    • aa及其上方整个积木堆移动到bb所在堆的顶部
    • 保持aa上方积木的原有顺序
  5. quit

    • 终止程序

注意:

  • a=ba=baabb在同一堆时,命令无效
  • 积木数量0<n<250 < n < 25

输入格式

  • 第一行:积木数量nn
  • 后续若干行:操作指令,直到出现quit命令

输出格式

输出最终每个位置的积木堆状态(共nn行),格式为:
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)