#P11321. [NOISG2020 Qualification] Relay Marathon
[NOISG2020 Qualification] Relay Marathon
题目背景
Nilan 是 Berapur 国家的一位马拉松组织者。他计划在国家内的城市网络中组织一场接力马拉松。
题目描述
该国家共有 个城市,通过 条双向道路连接。每个城市编号为 到 ,每条道路编号为 到 ,第 条道路连接城市 和 ,通行时间为 秒。道路网络中没有自环或重复边。
在 个城市中,有 个特殊城市,编号分别为 。
接力马拉松的规则如下:
- 两组人分别从两个起始城市
start1
和start2
出发; - 第一组人从
start1
前往finish1
; - 第一组人到达
finish1
后,第二组人立即(无延迟)从start2
前往finish2
; - 接力马拉松在第二组人到达
finish2
时结束。
接力马拉松的有效条件:
start1
、finish1
、start2
和finish2
必须是四个不同的特殊城市。
令 表示从城市 到城市 的最短通行时间。如果 和 之间无路径,则定义 。
接力马拉松的总耗时定义为:
你的任务是找到所有有效的起点和终点组合中,总耗时的最小值。
输入格式
- 第一行包含三个整数 ,分别表示城市数量、道路数量和特殊城市数量。
- 接下来 行,每行包含三个整数 ,表示城市 和 之间有一条通行时间为 秒的道路。
- 最后一行包含 个整数 ,表示特殊城市的编号。
输出格式
输出一个整数,表示接力马拉松的最小总耗时。
5 4 4
1 2 1
3 4 2
4 5 5
5 3 8
3 1 5 2
8
6 6 4
1 2 5
2 4 7
4 6 50
6 5 3
1 5 15
3 5 6
1 5 4 6
15
提示
【样例解释】
对于样例 #1:
- 有效组合为
start1 = 1, finish1 = 2, start2 = 3, finish2 = 5
; - ,;
- 总耗时为 。
对于样例 #2:
- 有效组合为
start1 = 1, finish1 = 4, start2 = 5, finish2 = 6
; - ,;
- 总耗时为 。
【数据范围】
- $2 \leq M \leq \min \left( \frac{N(N-1)}{2}, 3 \times 10^6 \right)$
子任务编号 | 分值 | 限制条件 |
---|---|---|
城市 和城市 是特殊城市,直接由一条耗时为 秒的道路相连,且城市 不与其他城市相连,城市 也不与其他城市相连 | ||
无额外限制 |