200902: [AtCoder]ARC090 E - Avoiding Collision

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $700$ points

Problem Statement

We have a graph with $N$ vertices and $M$ edges, and there are two people on the graph: Takahashi and Aoki.

The $i$-th edge connects Vertex $U_i$ and Vertex $V_i$. The time it takes to traverse this edge is $D_i$ minutes, regardless of direction and who traverses the edge (Takahashi or Aoki).

Takahashi departs Vertex $S$ and Aoki departs Vertex $T$ at the same time. Takahashi travels to Vertex $T$ and Aoki travels to Vertex $S$, both in the shortest time possible. Find the number of the pairs of ways for Takahashi and Aoki to choose their shortest paths such that they never meet (at a vertex or on an edge) during the travel, modulo $10^9 + 7$.

Constraints

  • $1 \leq N \leq 100$ $000$
  • $1 \leq M \leq 200$ $000$
  • $1 \leq S, T \leq N$
  • $S \neq T$
  • $1 \leq U_i, V_i \leq N$ ($1 \leq i \leq M$)
  • $1 \leq D_i \leq 10^9$ ($1 \leq i \leq M$)
  • If $i \neq j$, then $(U_i, V_i) \neq (U_j, V_j)$ and $(U_i, V_i) \neq (V_j, U_j)$.
  • $U_i \neq V_i$ ($1 \leq i \leq M$)
  • $D_i$ are integers.
  • The given graph is connected.

Input

Input is given from Standard Input in the following format:

$N$ $M$
$S$ $T$
$U_1$ $V_1$ $D_1$
$U_2$ $V_2$ $D_2$
$:$
$U_M$ $V_M$ $D_M$

Output

Print the answer.


Sample Input 1

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

Sample Output 1

2

There are two ways to choose shortest paths that satisfies the condition:

  • Takahashi chooses the path $1 \rightarrow 2 \rightarrow 3$, and Aoki chooses the path $3 \rightarrow 4 \rightarrow 1$.
  • Takahashi chooses the path $1 \rightarrow 4 \rightarrow 3$, and Aoki chooses the path $3 \rightarrow 2 \rightarrow 1$.

Sample Input 2

3 3
1 3
1 2 1
2 3 1
3 1 2

Sample Output 2

2

Sample Input 3

3 3
1 3
1 2 1
2 3 1
3 1 2

Sample Output 3

2

Sample Input 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

Sample Output 4

6

Input

题意翻译

在一个有N个顶点和M条边的图上有两个人,分别在S号节点和T号节点。他们要各自走到对面(即在S的人走到T,在T的人走到S)。 给你M条边,描述为(Ui Vi Di)分别表示该边连接的两个点及边的长度。 求两人经过**最短路径**(可能有多条)且不**相遇**(在同一单位时间内都在一条边或一个点上)的方案数(答案对10^9+7取模)

加入题单

算法标签: