U315823 [Violet 6] 故乡的梦

题目背景

“Violet……,我回来了……”

题目描述

不知每日疲于在城市的水泥森林里奔波的你会不会有时也曾向往过乡村的生活。你会不会幻想过,在夏日一个静谧的午后,你沉睡于乡间路边的树荫里,一片叶子落在了你的肩上,而你正做着一个悠长的梦,一个没有城市的梦。 而我们的问题,正围绕着这个梦境而展开…… 从 Azure 求学的城市到 Azure 家乡的村庄由若干条路径连接。 为了简化起见,我们把这些路径抽象成一个 $N$ 个节点的无向图,每个节点用一个 $[1,N]$ 内的整数表示,其中城市在 $S$ 节点,Azure 的故乡在 $T$ 节点。 在某些节点对 $(x, y)$ 之间会有双向道路连接,道路的长度为 $C$。 不过最近某些道路可能会在施工,Azure 想知道,假如某条道路被施工而不能通行的话,他到故乡的最短路径的长度为多少。

输入格式

第一行两个正整数 $N$ 和 $M$,分别表示结点数和道路数。 之后 $M$ 行,每行三个正整数 $x,y,c$,表示在 $x$ 和 $y$ 之间存在一条长度为 $c$ 的道路。之后一行包含两个正整数 $S$ 和 $T$,表示 Azure 所在位置和家乡位置。 之后一行包含一个整数 $O$,表示询问的数目。 之后 $O$ 行,每行两个整数 $u$ 和 $v$,表示 Azure 想知道如果连接 $u$ 和 $v$ 之间的道路进入了维修状态,从 $S$ 到 $T$ 的最短距离会变为多长。

输出格式

对于每次询问,在单独的一行内输出结果。 如果无法从 $S$ 走到 $T$,则输出一行 ```infinity```。

说明/提示

### 数据范围与约定 对于 $20\%$ 的数据,保证 $ 1 \le N,M,O \le 1000 $。 对于 $100\%$ 的数据,保证 $1 \le N,M,O \le 200000 $,$1\le x,y,u,v,S,T\le N,1\le c< 10$。 数据保证在一对结点之间不会出现两条或以上的道路。 搬题人:做 [P2685](https://www.luogu.com.cn/problem/P2685) [TJOI2012] 桥,重题。