Задан неориентированный связный граф, состоящий из \(n\) вершин и \(m\) ребер. Граф не содержит петель (рёбер из вершины в себя же) и кратных ребер (то есть между каждой парой вершин не более одного ребра). Вершины графа пронумерованы от \(1\) до \(n\).
Найдите количество путей из вершины \(s\) в \(t\), длина которых отличается от длины кратчайшего пути из \(s\) в \(t\) не более, чем на \(1\). Необходимо учесть все подходящие пути, даже если они проходят по одной и той же вершине или ребру более одного раза (то есть, не являются простыми).
Граф, состоящий из \(6\) вершин и \(8\) ребер. Например, пусть \(n = 6\), \(m = 8\), \(s = 6\) и \(t = 1\), а граф выглядит как на рисунке выше. Тогда длина кратчайшего пути из \(s\) в \(t\) равна \(1\). Рассмотрим все пути, длина которых не более \(1 + 1 = 2\).
- \(6 \rightarrow 1\). Длина пути равна \(1\).
- \(6 \rightarrow 4 \rightarrow 1\). Длина пути равна \(2\).
- \(6 \rightarrow 2 \rightarrow 1\). Длина пути равна \(2\).
- \(6 \rightarrow 5 \rightarrow 1\). Длина пути равна \(2\).
Всего существует \(4\) подходящих пути.
Выходные данные
Для каждого тестового случая выведите единственное число — количество путей из \(s\) в \(t\) таких, что их длина отличается от длины кратчайшего пути не более, чем на \(1\).
Так как это число может быть слишком большим, выведите его по модулю \(10^9 + 7\).
| № | Входные данные | Выходные данные |
|
1
|
4
4 4
1 4
1 2
3 4
2 3
2 4
6 8
6 1
1 4
1 6
1 5
1 2
5 6
4 6
6 3
2 6
5 6
1 3
3 5
5 4
3 1
4 2
2 1
1 4
8 18
5 1
2 1
3 1
4 2
5 2
6 5
7 3
8 4
6 4
8 7
1 4
4 7
1 6
6 7
3 8
8 5
4 5
4 3
8 2
|
2
4
1
11
|