L. Сколько кратчайших путей
Посчитайте количество кратчайших путей из вершины 1 в вершину во взвешенном графе. Ответ выведите по модулю .
Схема та же, что была для невзвешенного графа: сначала расстояния, потом счёт по возрастанию расстояния.
Единственное, что нужно поменять: вершины перебираются в порядке возрастания , а не по слоям обхода в ширину. Дейкстра как раз снимает их с кучи в этом порядке, так что можно считать прямо во время работы алгоритма — либо отсортировать вершины после.
Веса строго положительны, поэтому рёбра кратчайших путей ведут строго от меньшего расстояния к большему, и порядок по расстоянию законен. При нулевых весах это было бы неверно: появились бы циклы из нулевых рёбер, и путей стало бы бесконечно много.
Кратные рёбра между одной парой вершин считаются разными путями, если оба лежат на кратчайшем.
Формат ввода
Первая строка содержит числа () и ().
Далее идут строк с рёбрами: концы и вес (). Возможны кратные рёбра; петель нет.
Формат вывода
Одно число — количество кратчайших путей по модулю , или , если пути нет.
Примеры
4 4 1 2 1 1 3 1 2 4 1 3 4 1
2
2 2 1 2 5 1 2 5
2