Module: Dijkstra 算法


Problem

12 /14


做好准备

Problem

一些知名国家的政府决定在全球范围内重建道路系统——它已经设法摧毁了所有的道路,现在有必要重建道路网络。可以在任意两个城市之间修建新的双向道路,修建道路的成本等于各自城市之间的距离。但是,在某些情况下,地形允许您以不同的价格建造道路,这样的城市对称为特殊城市。政府决定首先将这个国家的两个主要城市连接起来—— A 和 B. 你被指示制定一个道路建设计划,其中所有已建设道路的总成本将尽可能低,同时,沿着已建设道路,将有可能获得从A城市到B城市。

输入
第一行包含数字 N –该国的城市数量 (\(1\leq N\leq10^4\))。接下来的 N 行中的每一行都包含两个整数 xi 和 yi ——相应城市的坐标 (\(|x|, |y| \leq 10^6\) )。下面包含数字 M –特殊城市对的数量 (\(0\leq M \leq min(10^4, N(N-1)/2)\)。接下来 M 行包含特殊道路的描述,每条道路由三个整数组成:u, v ——特殊道路经过的一对不同的城市,以及 w ——建造相应道路的成本 (\(1 \leq u,v \leq N, 0 \leq w \leq 10^6\))。最后一行包含城市A和B的编号(从1到N)。< br />
印记
打印一个数字——所需的最小长度。您的答案与正确答案的差异不得超过 10−5

例子 <头> <日># <正文>
输入 输出
1 4
1 1
0 0
10
0 1
1
1 2 100
2 1
2.0000000000