Ctrl K

Контрольные точки в пределах шагов

Сложная
В метро n станций с номерами от 0 до n - 1, некоторые пары станций соединены туннелями. Туннель tunnels[i] = [u, v, c] соединяет станции u и v, а внутри него стоят c контрольных точек, идущих цепочкой: u → точка 1 → … → точка c → v (при c = 0 станции соединены напрямую). Один шаг — переход между соседними объектами цепочки (станцией и точкой, двумя точками или, при c = 0, двумя станциями). Туннели двусторонние. Вы стартуете на станции 0 и можете сделать не больше budget шагов. Объект (станция или контрольная точка) считается достижимым, если до него можно добраться не больше чем за budget шагов. Верните количество достижимых объектов, включая саму станцию 0.
Пример 1
tunnels=[[0, 1, 3], [1, 2, 0]], budget=5, n=3 → 6

Из станции 0 за 4 шага доходим до станции 1, по пути пройдя 3 контрольные точки, и ещё шаг — до станции 2. Итого 3 станции и 3 точки: 6.

Пример 2
tunnels=[[0, 1, 4], [0, 2, 4], [1, 2, 4]], budget=3, n=3 → 7

До других станций не дойти, но по каждому из двух туннелей из станции 0 можно пройти 3 точки: 1 + 3 + 3 = 7.

Пример 3
tunnels=[[1, 2, 5]], budget=100, n=3 → 1

Станция 0 ни с чем не соединена, поэтому достижима только она сама.

Ограничения
  • 1 ≤ n ≤ 3000
  • 0 ≤ len(tunnels) ≤ min(n·(n − 1)/2, 10⁴)
  • tunnels[i] = [u, v, c], 0 ≤ u, v < n, u ≠ v
  • Между двумя станциями не больше одного туннеля
  • 0 ≤ c ≤ 10⁴
  • 0 ≤ budget ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШарик и лунка СложнаяПерекрасить стрелки до выхода СложнаяСквозь стены в дальний угол СложнаяЗалы, открывающиеся по расписанию СложнаяДлины для дорог на ремонте Сложная
загружаем Python…
Вход
tunnels=[[0, 1, 3], [1, 2, 0]], budget=5, n=3
Ожидается
6

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