Ctrl K

Ровно поделённые команды

Средняя
В компании n сотрудников с номерами от 0 до n - 1, где n = len(links) + 1. Каждая пара [a, b] в links — связь «руководитель — подчинённый», но кто из двоих начальник, не указано. Известно лишь, что во главе всех стоит сотрудник 0, а связи образуют дерево. *Ветка* сотрудника — это один его прямой подчинённый вместе со всеми, кто ниже него в иерархии. Сотрудник *поделил команду ровно*, если все его ветки одинакового размера. У кого подчинённых нет или он один, тот всегда поделил ровно. Верните количество сотрудников, поделивших команду ровно.
Пример 1
links=[[0, 1], [0, 2], [1, 3], [2, 4]] → 5

У 0 две ветки по 2 человека, у 1 и 2 — по одному подчинённому, 3 и 4 без подчинённых. Все пятеро подходят.

Пример 2
links=[[0, 1], [0, 2], [2, 3]] → 3

Ветки сотрудника 0 — {1} и {2, 3}, размеры 1 и 2 не равны. Остальные трое подходят: ответ 3.

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

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