问题描述
我们有一个具有N个顶点和M条边的图,图上有两个人:高桥和青木。
第i条边连接顶点Ui和顶点Vi。不考虑方向和穿越边的人(高桥或青木),穿越这条边需要Di分钟。
高桥从顶点S出发,青木从顶点T出发,同时出发。高桥前往顶点T,青木前往顶点S,两者都选择最短时间的路径。计算高桥和青木选择最短路径的对数,使得他们在旅行过程中不会相遇(在顶点或边上),结果取模109+7。
约束条件
- 1≤N≤100000
- 1≤M≤200000
- 1≤S,T≤N
- S=T
- 1≤Ui,Vi≤N (1≤i≤M)
- 1≤Di≤109 (1≤i≤M)
- 如果 i=j,则 (Ui,Vi)=(Uj,Vj) 和 (Ui,Vi)=(Vj,Uj)。
- Ui=Vi (1≤i≤M)
- Di 是整数。
- 给定的图是连通的。
输入
从标准输入读取输入。数据格式如下:
N M
S T
U1 V1 D1
U2 V2 D2
:
UM VM DM
输出
输出答案。
示例输入 1
4 4
1 3
1 2 1
2 3 1
3 4 1
4 1 1
示例输出 1
2
有两种满足条件的最短路径选择方式:
- 高桥选择路径 1→2→3,青木选择路径 3→4→1。
- 高桥选择路径 1→4→3,青木选择路径 3→2→1。
示例输入 2
3 3
1 3
1 2 1
2 3 1
3 1 2
示例输出 2
2
示例输入 3
3 3
1 3
1 2 1
2 3 1
3 1 2
示例输出 3
2
示例输入 4
8 13
4 2
7 3 9
6 2 3
1 6 4
7 6 9
3 8 9
1 2 2
2 8 12
8 6 9
2 5 5
4 2 18
5 3 7
5 1 515371567
4 8 6
示例输出 4
6