QOJ.ac

QOJ

Limite de temps : 30.0 s Limite de mémoire : 256 MB Points totaux : 100

#17459. Long Distance Taxi

Statistiques

出租车司机中村(Nakamura)非常高兴,因为他接到了一个想去几千公里外城市的乘客。然而,他遇到了一个问题。如你所知,日本的大多数出租车都使用液化石油气(LPG),因为它比汽油便宜。全国有超过 50,000 个加油站,但其中只有不到百分之一销售 LPG。虽然他的车的 LPG 油箱是满的,但油箱容量是有限的,而且他的车每升油只能行驶 10 公里,所以如果不中途加油,他可能无法到达目的地。他知道所有 LPG 加气站的位置。

你的任务是编写一个程序,寻找从当前位置到目的地的最佳路线,且途中不会耗尽燃料。

输入格式

输入由多个数据集组成,每个数据集的格式如下:

N M cap
src dest
c1,1 c1,2 d1
c2,1 c2,2 d2
...
cN,1 cN,2 dN
s1
s2
...
sM

每个数据集的第一行包含三个整数 $N, M, cap$,其中 $N$ 是道路数量($1 \le N \le 3000$),$M$ 是 LPG 加气站的数量($1 \le M \le 300$),$cap$ 是油箱容量($1 \le cap \le 200$),单位为升。

下一行包含当前城市的名称($src$)和目的地城市的名称($dest$)。目的地城市总是与当前城市不同。

接下来的 $N$ 行描述连接城市的道路。第 $i$ 条道路($1 \le i \le N$)连接两个不同的城市 $c_{i,1}$ 和 $c_{i,2}$,其整数距离为 $d_i$($0 < d_i \le 2000$),单位为公里,他可以从其中任一城市前往另一个城市。你可以假设没有两条不同的道路连接同一对城市。各列之间用单个空格分隔。

接下来的 $M$ 行($s_1, s_2, \dots, s_M$)表示设有 LPG 加气站的城市名称。你可以假设设有 LPG 加气站的城市至少与一条道路相连。

城市名称不超过 15 个字符。名称中只允许使用英文大小写字母('A' 到 'Z' 以及 'a' 到 'z',区分大小写)。

输入以包含三个零的一行结束。

输出格式

对于每个数据集,输出一行,包含从当前城市到目的地城市的最短可能行程长度(单位为公里)。如果中村无法到达目的地,则输出 "-1"(不含引号)。你不能输出任何其他字符。

实际的油箱容量通常比规格说明书上的稍大一些,因此你可以假设即使剩余油量恰好为零,他也能到达城市。此外,你总是可以在目的地加满油,因此无需担心回程。

样例

输入样例 1

6 3 34
Tokyo Kyoto
Tokyo Niigata 335
Tokyo Shizuoka 174
Shizuoka Nagoya 176
Nagoya Kyoto 195
Toyama Niigata 215
Toyama Kyoto 296
Nagoya
Niigata
Toyama
6 3 30
Tokyo Kyoto
Tokyo Niigata 335
Tokyo Shizuoka 174
Shizuoka Nagoya 176
Nagoya Kyoto 195
Toyama Niigata 215
Toyama Kyoto 296
Nagoya
Niigata
Toyama
0 0 0

输出样例 1

846
-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.