Ctrl K

Попутчики до столицы

Средняя
В стране n городов с номерами от 0 до n − 1, соединённых n − 1 двусторонними дорогами так, что из любого города можно доехать до любого другого (то есть дороги образуют дерево). Дорога roads[i] = [a, b] соединяет города a и b. Столица — город 0. В столице проходит съезд, и из каждого города туда едет один делегат. В каждом городе стоит одна машина на seats мест. Делегат может поехать на машине своего города, а может по пути пересесть в чужую машину, если в ней есть свободное место. Проезд машины по одной дороге стоит 1 литр топлива. Верните наименьшее количество топлива, за которое все делегаты доберутся до столицы.
Пример 1
roads=[[0, 1], [1, 2], [1, 3]], seats=3 → 3

Делегаты городов 2 и 3 едут в город 1 на своих машинах (2 литра). Там все трое садятся в одну машину и едут в столицу (1 литр). Итого 3.

Пример 2
roads=[[0, 1], [1, 2], [2, 3]], seats=1 → 6

В машине одно место, поэтому каждый едет сам: 1 + 2 + 3 = 6 литров.

Пример 3
roads=[], seats=4 → 0
Ограничения
  • 1 ≤ n ≤ 10⁵
  • len(roads) == n − 1
  • roads[i] = [a, b], 0 ≤ a, b < n, a ≠ b
  • Дороги образуют дерево
  • 1 ≤ seats ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный поход по лесу СредняяСвязи складываются в одно дерево СредняяОткрытые комнаты от холла СредняяГонка за сокровищами у ворот СредняяЖук бродит по дереву Сложная
загружаем Python…
Вход
roads=[[0, 1], [1, 2], [1, 3]], seats=3
Ожидается
3

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