Платные и бесплатные тоннели
Просмотр в формате PDF
Submit solution
Очки:
170
Ограничение по времени:
2.0s
Ограничение по памяти:
256M
Автор:
Problem types
Allowed languages
C++, Python
В подземном городе есть n залов, соединённых направленными тоннелями. Каждый тоннель позволяет пройти только в одном направлении.
Для каждого тоннеля известен его тип:
- бесплатный, тогда стоимость прохода по нему равна
0; - платный, тогда стоимость прохода по нему равна
1.
Нужно определить минимальную суммарную стоимость пути из зала s в зал t.
Стоимость пути равна сумме стоимостей всех тоннелей на этом пути. Если добраться из s в t невозможно, выведите -1.
Входные данные
В первой строке заданы четыре целых числа n, m, s, t — количество залов, количество тоннелей, начальный зал и конечный зал.
В следующих m строках заданы тоннели в формате u v w, где:
u— зал, из которого начинается тоннель;v— зал, в который ведёт тоннель;w— стоимость прохода по тоннелю, равная0или1.
Выходные данные
Выведите одно целое число — минимальную стоимость пути из s в t, либо -1, если такого пути не существует.
Ограничения
1 <= n <= 2000000 <= m <= 3000001 <= s, t <= n1 <= u, v <= nwравно0или1- Возможны тоннели из зала в тот же зал.
- Между одной и той же парой залов может быть несколько тоннелей.
Примеры
Пример 1
Входные данные
2 1 1 2
1 2 0
Выходные данные
0
Пример 2
Входные данные
4 4 1 4
1 1 0
2 2 1
1 2 1
2 3 0
Выходные данные
-1
Комментарии