Дракон і дороги
Limits: 2 sec., 256 MiB
Дракон Віталій потрапив до нового міста і знайшов його карту. На карті позначено \(n\) контрольних точок та \(m\) доріг, які їх з’єднують. Відомо, що довжина кожної дороги дорівнює 47.
Віталію необхідно добратися з точки \(a\) до точки \(b\), подолавши при цьому якомога меншу відстань. Ваше завдання — сказати, скількома способами Дракон зможе це зробити. Оскільки відповідь може бути дуже великою, виведіть кількість різних шляхів за модулем простого числа \(10^9 + 7\).
Input
У першому рядку задано два натуральних числа \(n\) та \(m\) — кількість точок і кількість доріг відповідно.
У другому рядку задано два натуральних числа \(a\) та \(b\) — номери точок, між якими Віталій хоче подорожувати.
У наступних \(m\) рядках задано по два числа \(u_i\) та \(v_i\), які означають, що між точками з номерами \(u_i\) та \(v_i\) є дорога.
Output
У єдиному рядку виведіть одне ціле число — кількість різних шляхів мінімальної довжини між точками \(a\) та \(b\) за модулем просто числа \(10^9 +7\)
Constraints
\(1 \le n, m \le 10^5\),
\(1 \le a, b, u_i, v_i \le n\).
Samples
Input (stdin) | Output (stdout) |
---|---|
4 4 1 4 1 2 1 3 2 4 3 4 | 2 |
Notes
Можливі шляхи: 1-2-4, 1-3-4
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|