EduBrick
← вернуться к уроку · Практика: Обходы: в глубину и в ширину

Сколько кратчайших путей

8000 мс · 256 МБ · всё или ничего

Сколько существует различных кратчайших путей от вершины 1 до вершины nn?

Ответ может быть огромным, поэтому выведите остаток от его деления на 109+710^9 + 7. Если пути нет, выведите 0.

Формат ввода

В первой строке числа nn от 11 до 21052 \cdot 10^5 и mm от 00 до 21052 \cdot 10^5. Во второй строке 2m2m чисел: пары концов рёбер.

Формат вывода

Одно число.

Примеры

ввод
2 1
1 2
вывод
1

Примечание

Ведите рядом с расстоянием ещё и количество путей. Когда сосед впервые получает расстояние, он наследует количество у текущей вершины; когда встречается снова и расстояние совпало, количества складываются. Обход в ширину гарантирует, что к моменту обработки вершины её количество уже посчитано целиком.

Войдите, чтобы отправлять решения.
← Вернуться к уроку