atcoder#ARC090C. [ARC090E] Avoiding Collision

[ARC090E] Avoiding Collision

配点 : 700700

問題文

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

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

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

制約

  • 1N100,0001 \leq N \leq 100,000
  • 1M200,0001 \leq M \leq 200,000
  • 1S,TN1 \leq S, T \leq N
  • STS \neq T
  • 1Ui,ViN1 \leq U_i, V_i \leq N (1iM1 \leq i \leq M)
  • 1Di1091 \leq D_i \leq 10^9 (1iM1 \leq i \leq M)
  • iji \neq j のとき、(Ui,Vi)(Uj,Vj)(U_i, V_i) \neq (U_j, V_j) かつ (Ui,Vi)(Vj,Uj)(U_i, V_i) \neq (V_j, U_j)
  • UiViU_i \neq V_i (1iM1 \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

出力

答えを出力せよ。

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

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

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