Турист
(Время: 2 сек. Память: 64 Мб Сложность: 56%)
В городе Х всего одна улица и n остановок, которые пронумерованы в порядке следования вдоль улицы. Мэр города решил оптимизировать транспортную систему. Для этого он запретил промежуточные остановки автобусов – теперь у каждого автобуса две остановки: начальная и конечная.
Турист хочет добраться с первой остановки до n-ой на автобусах, возможно, с пересадками. Он узнал, что существует m маршрутов автобусов. Для каждого из них известна начальная остановка ai, конечная остановка bi и стоимость проезда ci.
Все автобусы следуют только по направлению «из ai в bi» (но не обратно), причем для всех маршрутов верно, что ai < bi.
Помогите ему найти самый дешевый способ добраться, или определите, что искомого маршрута не существует.
Входные данные
В первой строке входного файла INPUT.TXT записаны через пробел два натуральных числа n и m - число остановок и маршрутов автобусов соответственно (1 ≤ n ≤ 1018, 1 ≤ m ≤ 105).
В каждой из следующих m строк вводится тройка натуральных чисел ai , bi и ci (1 ≤ ai < bi ≤ n, 1 ≤ ci ≤ 109).
Выходные данные
Если искомого маршрута не существует, выведите в единственную строку выходного файла OUTPUT.TXT одно число -1.
Если маршрут существует, в первой строке выходного файла OUTPUT.TXT выведите одно число – минимальную сумму, которую необходимо потратить на проезд. Во второй строке через пробел перечислите номера маршрутов, которыми должен воспользоваться турист, в порядке использования. Если вариантов ответа несколько, выведите любой. Автобусные маршруты нумеруются с единицы в порядке следования во входных данных.
Примеры
| № | INPUT.TXT | OUTPUT.TXT |
| 1 | 3 3
1 2 5
1 3 10
2 3 1 | 6 1 3 |
| 2 | 3 1 1 2 5 | -1 |
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
|