网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
[uva101]木块问题
成绩 | 开启时间 | 2014年09月19日 星期五 10:08 | |
折扣 | 0.8 | 折扣时间 | 2014年09月26日 星期五 10:08 |
允许迟交 | 是 | 关闭时间 | 2014年09月26日 星期五 10:08 |
输入文件 | uvablock.in | 输出文件 | 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