问题 23898 --CCC 1998 03 Mars Rover

23898: CCC 1998 03 Mars Rover

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

“罗孚”探测器正行驶在火星上一个完全平坦(没有障碍)的表面上。它通过导航仪定位它所到达的地点。导航仪记录并向地球接收和交换各种命令,以便于“罗孚”进行了一些移动,从而更好地工作。
“罗孚“根据着导航仪接收到的指令可以前进、左转90度或右转90度。
“前进”命令在输入文件中为两行。第一行为整数1,第二行为一个正整数n,表示移动的步数。
“右转”命令为一行一个整数2。
“左转”命令为一行一个整数3。
例如,下面的命令序列指示罗孚向左转,然后将前进10个单位,然后右转,然后再前进5个单位。
3
1
10
2
1
5

你的任务是给出了一组指令序列,来确定”罗孚”在执行这些指令后行驶多远,并编写最短的指令序列,使得“罗孚”返回起点。在上面的例子中,”罗孚”行驶了15个单位,它要返回起点最短的命令序列是
2
1
10
2
1
5

输入

输入文件的第一行包含一个正整数n,作为控制’罗孚”指令组数。每一组之间以0作为分隔符。
在输入文件中没有错误或空白行。在每次移动中,”罗孚”行驶不超过10000个单位距离。

输出

每次移动,输出文件应该包含这样一行:
Distance is k
k为的单位距离。以下几行应包含罗孚返回着陆器的最短的命令序列。一个空行用以分开输出不同的指令。
注意:没有给出部分返回距离的标志。

样例输入

3
2
3
3
0
3
1
10
2
1
5
0
1
5
2
1
5
3
3
1
1
0

样例输出

Distance is 0
Distance is 15
2
1
10
2
1
5
Distance is 9
1
4
3
1
5

来源

[提交][状态]