SP11952 IGALAXY - Intergalactic Highways

题目描述

在未来世界,人类已发展为银河级文明。到公元 700,000 年,人类能够在 1 个时间单位内瞬间到达任何星球。然而,为了避免与小行星相撞,他们有时需要在中途停留。 Rudolph-X3000,是一个单独的类人生物,他希望从星球 A 到星球 B 的过程中,以最少的停靠次数抵达,不重复访问任何星球。他时间紧迫,非常需要一个快速的答案。你能够帮他算出他至少需要访问多少个星球吗? 而作为一名星际旅行者,Rudolph-X3000 还希望知道具体的行程。如果存在多条从星球 A 到星球 B 的最短路径,选择字典序最小的一条;若路径不存在,则输出 -1。 人类现已掌握了“Delta速度”,允许他们在 1 个时间单位内快速从地点 i 到地点 j。因此,星球间的距离始终视为 1。

输入格式

第一行输入一个整数 $T$,表示测试用例的数量。 对于每组测试用例,首先输入一个整数 $R$,表示星球间的关系数量。每一条关系意味着可以从星球 $i$ 到达星球 $j$,这种关系是双向的,即 $(i, j)$ 与 $(j, i)$ 保持一致。 接下来有 $R$ 行,每行包含两个字符串 $P$ 和 $Q$,分别表示星球 $P$ 与星球 $Q$ 之间的关系。 最后一行包含两个字符串 $S$ 和 $D$,分别表示出发星球和目标星球。 注意:所有星球名称由大写字母和小写字母 [A-Z] [a-z] 组成。

输出格式

对每个测试用例,输出格式为 “Scenario #i: ”,其中 $i$ 是测试用例编号(从 1 开始)。接下来列出访问星球的最小数量,然后在下一行依次列出访问的星球名称(包括起点和终点),使用空格分隔。 **样例输入**: ``` 3 8 Mercury Venus Venus Earth Earth Mars Mars Jupiter Jupiter Saturn Saturn Uranus Uranus Neptune Neptune Pluto Earth Pluto 7 Mesopotamia Merrick Merian Earth Earth Venus Merian Merrick Venus Mesopotamia Pluto Earth Mesopotamia Pluto Mesopotamia Earth 2 Earth Sun Moon Venus Earth Moon ``` **样例输出**: ``` Scenario #1: 7 Earth Mars Jupiter Saturn Uranus Neptune Pluto Scenario #2: 3 Mesopotamia Pluto Earth Scenario #3: -1 ``` **解释**: 对于第二个测试用例,“Mesopotamia”到“Earth”有两条可能的路径:“Mesopotamia → Pluto → Earth”和“Mesopotamia → Venus → Earth”。我们选择字典序较小的一条。

说明/提示

- 1