Ctrl K

Уроки одного общего языка

Средняя
В клубе len(speaks) человек, они пронумерованы с 1. Всего есть language_count языков, тоже с номерами от 1. Список speaks[i] — языки, которые знает человек с номером i + 1. Каждая пара [u, v] из pairs означает, что люди u и v дружат. Друзья могут общаться, если знают хотя бы один общий язык. Вы выбираете **один** язык и учите ему некоторых людей так, чтобы после этого каждая пара друзей могла общаться. Верните, скольких людей минимум придётся учить. Дружба не передаётся: если u дружит с v, а v — с w, это ещё не значит, что u дружит с w.
Пример 1
language_count=3, speaks=[[1], [2, 3], [3]], pairs=[[1, 2], [2, 3], [1, 3]] → 1

Пары 1–2 и 1–3 не могут поговорить. Достаточно научить первого человека языку 3: его знают и второй, и третий.

Пример 2
language_count=2, speaks=[[1], [1, 2], [2]], pairs=[[1, 2], [2, 3]] → 0

В каждой паре уже есть общий язык, учить никого не надо.

Ограничения
  • 2 ≤ language_count ≤ 500
  • 1 ≤ len(speaks) ≤ 500
  • 1 ≤ len(speaks[i]) ≤ language_count, языки в speaks[i] различны и лежат от 1 до language_count
  • 1 ≤ len(pairs) ≤ 500
  • Для каждой пары 1 ≤ u, v ≤ len(speaks) и u ≠ v; одна и та же пара друзей не встречается дважды
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗадания с перерывом на остывание СредняяСерии подряд идущих чисел СредняяСколько гостей на конференции СредняяРазложить карты на наборы подряд СредняяКаждому числу — его удвоение Средняя
загружаем Python…
Вход
language_count=3, speaks=[[1], [2, 3], [3]], pairs=[[1, 2], [2, 3], [1, 3]]
Ожидается
1

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