#arc090c. [arc090_c]Avoiding Collision

[arc090_c]Avoiding Collision

問題文

NN 頂点 MM 辺からなるグラフがあり、このグラフの上に高橋くんと青木くんがいます。

グラフの ii 番目の辺は頂点 UiU_i と頂点 ViV_i を結んでいます。 この辺を通るのにかかる時間は、通る人 (高橋くんまたは青木くん) によらず、また通る方向によらず、DiD_i 分です。

高橋くんは頂点 SS を、青木くんは頂点 TT を同時に出発し、それぞれ頂点 TT および頂点 SS へ最短の時間で移動します。 二人の最短路の選び方の組であって、移動の途中で二人が (辺または頂点上で) 出会うことのないようなものの個数を 109+710^9 + 7 で割ったあまりを求めてください。

制約

  • 1leqNleq100,0001 \\leq N \\leq 100,000
  • 1leqMleq200,0001 \\leq M \\leq 200,000
  • 1leqS,TleqN1 \\leq S, T \\leq N
  • SneqTS \\neq T
  • 1leqUi,VileqN1 \\leq U_i, V_i \\leq N (1leqileqM1 \\leq i \\leq M)
  • 1leqDileq1091 \\leq D_i \\leq 10^9 (1leqileqM1 \\leq i \\leq M)
  • ineqji \\neq j のとき、(Ui,Vi)neq(Uj,Vj)(U_i, V_i) \\neq (U_j, V_j) かつ (Ui,Vi)neq(Vj,Uj)(U_i, V_i) \\neq (V_j, U_j)
  • UineqViU_i \\neq V_i (1leqileqM1 \\leq i \\leq M)
  • DiD_i は整数である
  • 与えられるグラフは連結である

入力

入力は以下の形式で標準入力から与えられる。

NN MM SS TT U1U_1 V1V_1 D1D_1 U2U_2 V2V_2 D2D_2 :: UMU_M VMV_M DMD_M

出力

答えを出力せよ。


入力例 1

4 4
1 3
1 2 1
2 3 1
3 4 1
4 1 1

出力例 1

2

条件を満たす最短路の選び方は以下の 2 通りあります。

  • 高橋くんが頂点 1rightarrow2rightarrow31 \\rightarrow 2 \\rightarrow 3 という経路で、青木くんが頂点 3rightarrow4rightarrow13 \\rightarrow 4 \\rightarrow 1 という経路で移動する。
  • 高橋くんが頂点 1rightarrow4rightarrow31 \\rightarrow 4 \\rightarrow 3 という経路で、青木くんが頂点 3rightarrow2rightarrow13 \\rightarrow 2 \\rightarrow 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