补天计划

Grade 100 Open Time Tuesday, 31 May 2016, 4:05 PM
Discount 0.8 Time Discount Tuesday, 31 May 2016, 4:05 PM
Allow late Yes Close Time Tuesday, 31 May 2016, 4:05 PM
Input file fence.in Output file fence.out

【问题描述】补天计划(fence.cpp/c/pas)USACO3.3.1

与天顶星人的战争造成了宇宙时空通道多处的破损,魔法世界的“女娲号”飞船需要巡视以发现和修复破损的时空通道,这称为“补天计划”。

但是飞船从来不经过同一个时空通道两次。你必须编一个程序,读入时空通道的描述,并计算出一条巡视时空通道的路径,使每个时空通道都恰好被经过一次。飞船能从任何一个顶点(即两个结点的交点)开始出发,在任意一个顶点结束。

每一个时空通道连接两个顶点,顶点用1~500标号(虽然有的时空并没有500个顶点)。一个顶点上可连接任意多(≥1)个时空通道。所有时空通道都是连通的(也就是你可以从任意一个顶点到达另外的所有时空通道)。

你的程序必须输出飞船的路径(用路径上依次经过的顶点号码表示)。我们如果把输出的路径看成一个500进制的数,那么当存在多组解的情况下,输出500进制表示法中最小的一个 (也就是输出第一个数较小的,如果还有多组解,输出第二个数较小的……)。

输入数据保证至少有一个解。

【输入格式】

第1行:一个整数F(1 ≤ F≤1024),表示时空通道的数目。

第2行:每行两个整数i,j(1≤i,j≤500)表示这条时空通道连接i与j号顶点。

【输出格式】

输出应当有F+1行,每行一个整数,依次表示路径经过的顶点号。注意数据可能有多组解,但是只有上面题目要求的那一组解是正确的。

【输入样例】

9

1 2

2 3

3 4

4 2

4 5

2 5

5 6

5 7

4 6

【输出样例】

1

2

3

4

2

5

4

6

5

7