第一课堂
Current course
Participants
General
Topic 2
Topic 3
Topic 4
Topic 5
Topic 6
Topic 7
Topic 8
Topic 9
Topic 10
Topic 11
Topic 12
Topic 13
Topic 14
Topic 15
Topic 16
Topic 17
Topic 18
Topic 19
Topic 20
[uva101]木块问题
Grade | Open Time | Friday, 19 September 2014, 10:08 am | |
Discount | 0.8 | Time Discount | Friday, 26 September 2014, 10:08 am |
Allow late | Yes | Close Time | Friday, 26 September 2014, 10:08 am |
Input file | uvablock.in | Output file | uvablock.out |
【题目描述】
在计算机科学的很多领域,人们都是用简单,抽象的“区域问题”来进行分析和实践研究。例如:初期的机器人人工智能的研究就从解决方块问题开始的。机器人使用手臂完成有关于方块的操作任务。
在此问题中。你需要构造一个受特定条件限制的简单的方块模型。编写程序让机器人手臂完成一下任务:
分析一下命令,让机器人手臂移动置于平摊桌子上的方块。桌子上有n个方块(记为0到n-1).其中方块b(i)和方块b(i+1)(0<=i<n-1)相邻。图表如下:
及其需要完成的有效命令:
●move a onto b:
a,b分别是方块编号,移动方块a,b上的任何方块,将a置于b上。
●move a over b:
a,b分别是方块编号,移动位于a上的任何方块,将a 置于b摞顶部。
●pile a onto b:
a,b分别是方块编号,移动a摞(包括a上的任何方块)置于b方块上。移动时保持a上的所有方块顺序不变,且先移动b方块上的所有方块。
●pile a over b:
a,b 分别是方块编号,将a 摞(包括a上的任何方块)置于b摞顶部。移动a摞时需保持a方块上的所有方块顺序不变。
●quit
(注:任何包含a=b或将a,b置于同一摞的命令属于错误命令。错误命令将视为无效命令。)
【输入格式】
输入信息中以整数n开始(n代表方块的数量),0<n<25
一系列命令应在方块的数量之后,每行一个命令。程序运行到退出终止。
所有命令必须遵循以上格式。任何语法错误将视为错误命令。
【输出格式】
输出信息应显示出方块的最后状态。
每一个表示方块位置的I(0<=I<n)后都必须使用一个分号。如果方块的数量多于1,分号后需使用一个空格。列举此方块摞中各个方块时,各方块之间需以空格隔开。每行信息中不允许出现多余的空格。
每个位置的方块用一行输出信息。(例如在输入信息中第一行输入n,则有n行输出信息)
【样例输入】
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:
【提示】
在此键入。
【来源】
uva101