T830135 线路通票(pass)
题目描述
城市里有 $N$ 个车站,编号为 $1\sim N$,以及 $M$ 条双向线路。第 $i$ 条线路连接车站 $A_i$ 和 $B_i$,每次乘坐这条线路需要支付 $C_i$ 元。任意两个车站之间都可以通过若干条线路到达。
你准备购买一张从车站 $S$ 到车站 $T$ 的线路通票。购买时,必须在原来的票价下,选定一条从 $S$ 到 $T$ 的总票价最小的路线。如果有多条这样的路线,可以任选其中一条。
通票选定后,这条路线上的所有线路都可以免费乘坐,而且两个方向都免费;不在这条路线上的线路仍按原票价收费。不能同时选择多条路线,也不能在之后的行程中更换通票路线。
你还需要从车站 $U$ 前往车站 $V$。你可以自由选择这次行程的路线,可以使用通票中的部分线路,也可以完全不使用通票。
请合理选择通票路线和从 $U$ 到 $V$ 的行程,使这次行程实际支付的总票价尽可能小,并输出这个最小值。不计购买通票本身的费用。
输入格式
第一行一个整数 $Q$,表示数据组数。
对于每组数据:
- 第一行两个整数 $N,M$。
- 第二行两个整数 $S,T$。
- 第三行两个整数 $U,V$。
- 接下来 $M$ 行,第 $i$ 行三个整数 $A_i,B_i,C_i$,描述第 $i$ 条双向线路。
输出格式
对于每组数据,输出一行一个整数,表示从 $U$ 到 $V$ 最少实际支付的总票价。
说明/提示
从 $1$ 到 $6$ 的原票价最小路线唯一,为 $1\to2\to3\to5\to6$,原票价总和为 $4$ 元,通票覆盖这条路线上的线路。
从 $1$ 到 $4$ 时,可以沿 $1\to2\to3\to5\to4$ 行驶。前三段免费,最后一段 $5\to4$ 支付 $2$ 元,总共支付 $2$ 元。车站 $4$ 不在通票路线中,进入它至少需要乘坐一条收费线路,而与它相连的线路票价最小为 $2$ 元,因此不能更少。
## 样例 2
见 `考生目录/pass/pass2.in` 与 `考生目录/pass/pass2.ans`。该样例满足测试点 $1\sim3$ 的约束。
## 样例 3
见 `考生目录/pass/pass3.in` 与 `考生目录/pass/pass3.ans`。该样例满足测试点 $4\sim6$ 的约束。
## 样例 4
见 `考生目录/pass/pass4.in` 与 `考生目录/pass/pass4.ans`。该样例满足测试点 $7\sim11$ 的约束。
## 样例 5
见 `考生目录/pass/pass5.in` 与 `考生目录/pass/pass5.ans`。该样例满足测试点 $12\sim20$ 的约束。
## 样例 6
见 `考生目录/pass/pass6.in` 与 `考生目录/pass/pass6.ans`。该样例满足测试点 $12\sim20$ 的约束。
## 数据范围
对于所有数据,保证:
- $1\le Q\le10$;
- 每组数据中,$2\le N\le10^5$,$1\le M\le2\times10^5$;
- $1\le S,T,U,V\le N$,$S\ne T$,$U\ne V$,且不同时满足 $S=U$ 和 $T=V$;
- $1\le A_i