#215. 「John's trip」 约翰的旅行

「John's trip」 约翰的旅行

约翰买了一辆新车,想要坐车去探望他的朋友们。

他的朋友数量很多,城镇上的每条街上都有他的朋友。

已知约翰所在的城镇,有n条街道(编号1到n),m个路口(编号1到m),每条街道都被两个路口连接,任意两条街道之间都是互通的。

城镇的街道和路口构成了一个无向连通图。

现在请你帮他找出一个旅行方案使得他从他的家所在的路口出发,经过所有的街道且每条街道只走一次,并且最终可以回到出发点。

输入格式

输入包含多组测试用例。

每组测试用例包含若干行,每行包含三个整数x,y,z,表示路口x和路口y之间有一条街道z。

假设每组测试用例中,第一行输入的路口 x 和 路口 y 中,数值较小的那个路口,即为约翰的家所在的路口。

当输入0 0时,表示该组测试用例结束输入。

当一组测试用例结束输入后,再次输入0 0时,表示输入结束。

输出格式

若存在方案,则按顺序输出方案中经过的街道的编号。

若存在多种方案,则输出字典序最小的那个。

若不存在方案,则输出 “Round trip does not exist.”。

数据范围

n<1995n < 1995,
m44m \le 44

输入样例:

1 2 1
2 3 2
3 1 6
1 2 5
2 3 3
3 1 4
0 0
1 2 1
2 3 2
1 3 3
2 4 4
0 0
0 0

输出样例:

1 2 3 5 4 6 
Round trip does not exist.

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解