Ctrl K

Остановки, которые закрываются

Средняя
В городе stop_count остановок с номерами от 0 до stop_count - 1. Дороги заданы списком roads, где [u, v, t] — двусторонняя дорога между остановками u и v, проезд по ней занимает t единиц времени. Между парой остановок может быть несколько дорог, а сам город может распадаться на несвязные части. Остановка i закрывается в момент closing[i]: попасть на неё можно только строго раньше этого момента, а через закрытую остановку проехать уже нельзя. Вы стартуете с остановки 0 в момент 0. Верните список, где для каждой остановки записано самое раннее время, когда на неё можно попасть, или -1, если успеть туда невозможно.
Пример 1
stop_count=4, roads=[[0, 1, 3], [1, 2, 2], [0, 2, 7], [2, 3, 1]], closing=[5, 4, 6, 10] → [0, 3, 5, 6]

До остановки 1 едем 3 (закрывается в 4 — успели), до 2 через 1 за 3 + 2 = 5 (закрывается в 6), до 3 — ещё 1, итого 6.

Пример 2
stop_count=4, roads=[[0, 1, 3], [1, 2, 2], [0, 2, 7], [2, 3, 1]], closing=[5, 3, 6, 10] → [0, -1, -1, -1]

К остановке 1 приезжаем ровно в момент закрытия — это уже поздно. Прямая дорога к 2 занимает 7, а она закрывается в 6. Без 1 и 2 до остановки 3 не добраться.

Пример 3
stop_count=3, roads=[], closing=[2, 2, 2] → [0, -1, -1]

Дорог нет: доступна только стартовая остановка.

Ограничения
  • 1 ≤ stop_count ≤ 5·10⁴
  • 0 ≤ len(roads) ≤ 10⁵
  • 0 ≤ u, v < stop_count
  • 1 ≤ t ≤ 10⁵
  • len(closing) = stop_count
  • 1 ≤ closing[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКратчайший путь катящегося шарика СредняяСамый надёжный маршрут сообщения СредняяСувенир с возвращением СредняяПуть через туннели СредняяБлижайшая отмеченная вершина Средняя
загружаем Python…
Вход
stop_count=4, roads=[[0, 1, 3], [1, 2, 2], [0, 2, 7], [2, 3, 1]], closing=[5, 4, 6, 10]
Ожидается
[0, 3, 5, 6]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 106 тестов на сервере, включая скрытые.