Ctrl K

Время оповещения сети

Средняя
В сети node_count узлов, пронумерованных от 1 до node_count. Связи односторонние: каждая запись links[i] = [from, to, delay] означает, что сигнал из узла from доходит до узла to за время delay. Между одной упорядоченной парой узлов не больше одной связи. Из узла source отправляют сигнал, и каждый узел, получив его, сразу пересылает дальше по всем своим исходящим связям. Верните, через какое время сигнал получат все узлы сети. Если какой-то узел не получит его никогда, верните -1.
Пример 1
links=[[1, 2, 4], [1, 3, 1], [3, 2, 2], [2, 4, 1]], node_count=4, source=1 → 4

До узла 3 сигнал идёт 1, до узла 2 быстрее через узел 3: 1 + 2 = 3, до узла 4 — ещё 1, итого 4. Позже всех сигнал получит узел 4.

Пример 2
links=[[2, 1, 3]], node_count=3, source=2 → -1

В узел 3 не ведёт ни одна связь, поэтому всех оповестить нельзя.

Ограничения
  • 1 ≤ source ≤ node_count ≤ 100
  • 1 ≤ len(links) ≤ 6000
  • 1 ≤ from, to ≤ node_count, from ≠ to
  • 0 ≤ delay ≤ 100
  • Пары (from, to) не повторяются
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКратчайший путь катящегося шарика СредняяДешёвый перелёт с малым числом пересадок СредняяШарик и лунка СложнаяДороги на быстрейших маршрутах СложнаяЦепочки отношений Средняя
загружаем Python…
Вход
links=[[1, 2, 4], [1, 3, 1], [3, 2, 2], [2, 4, 1]], node_count=4, source=1
Ожидается
4

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