题目描述
西天取经途中,师徒四人路过一个被施了魔法的村庄,唐僧被抓走,孙悟空的各项本领也通通使不出来了。他需要通过阻挡他前进的魔法栅栏才能救出师傅。这些栅栏被施了魔法,只能穿越一次。孙悟空必须找到最有效的途径(总距离最短)来克服这些障碍。
魔法栅栏由编号为1到500的顶点表示。每个栅栏连接两个顶点,并且在同一对顶点之间可以有多个栅栏。所有的栅栏都是相互连接的,这意味着孙悟空可以从一个栅栏到另一个栅栏。
你的程序应该输出孙悟空应该走的路径,由所访问的顶点数序列表示。如果有多个解决方案,则选择基数为500的路径中数值最小的那个(即第一个顶点最小的路径,如果还有多个选项,则选择第二个顶点最小的路径,依此类推)。
输入格式:
第1行: 一个整数F(1 <= F <= 1024),表示栅栏的数目
第2到F+1行: 每行两个整数i, j(1 <= i,j <= 500)表示这条栅栏连接i与j号顶点。
输出格式:
输出应当有F+1行,每行一个整数,依次表示路径经过的顶点号。注意数据可能有多组解,但是只有上面题目要求的那一组解是认为正确的。
输入样例#1:
9
1 2
2 3
3 4
4 2
4 5
2 5
5 6
5 7
4 6
输出样例#1:
1
2
3
4
2
5
4
6
5
7