Маршрут экспедиции
Просмотр в формате PDFспедиция исследует сеть горных троп, соединяющих лагеря в разных точках хребта. Каждая тропа двусторонняя и имеет известную длину.
Дано n лагерей и m горных троп между ними. Необходимо найти маршрут минимальной суммарной длины из лагеря s в лагерь t и вывести его.
Если существует несколько маршрутов с одинаковой минимальной длиной, можно вывести любой из них. Если добраться из s в t невозможно, выведите -1.
Входные данные
В первой строке заданы четыре целых числа n, m, s, t — количество лагерей, количество троп, начальный лагерь и конечный лагерь.
В следующих m строках описаны тропы. Каждая строка содержит три целых числа u, v, w, где u и v — лагеря, соединённые тропой, а w — длина этой тропы.
Все данные подаются через стандартный ввод.
Выходные данные
Если маршрут существует, выведите:
- в первой строке его суммарную длину;
- во второй строке количество лагерей в маршруте
k; - в третьей строке номера лагерей в порядке прохождения — от
sдоt.
Если маршрута не существует, выведите единственную строку -1.
Вывод должен осуществляться в стандартный вывод.
Ограничения
1 <= n <= 1000000 <= m <= 3000001 <= s, t <= n1 <= u, v <= n0 <= w <= 1000000
Примеры
Пример 1
Входные данные
2 1 1 2
1 2 7
Выходные данные
7
2
1 2
Пример 2
Входные данные
4 2 1 4
1 2 5
2 3 1
Выходные данные
-1
Комментарии