Ctrl K

Две команды без ссор

Средняя
В летнем лагере people участников, у них номера от 1 до people. Вожатые хотят разбить всех на две команды — размеры команд могут быть любыми, одна может оказаться даже пустой. Некоторые участники поссорились: пара [a, b] в списке conflicts означает, что a и b нельзя ставить в одну команду. Верните True, если разбить всех на две команды так, чтобы ни одна поссорившаяся пара не оказалась вместе, можно, и False иначе.
Пример 1
people=5, conflicts=[[1, 2], [2, 3], [4, 5]] → True

Например, команды {1, 3, 4} и {2, 5}: ни одна поссорившаяся пара не оказалась вместе.

Пример 2
people=4, conflicts=[[1, 2], [2, 3], [1, 3]] → False

Участники 1, 2 и 3 попарно в ссоре — троих по двум командам без конфликта не рассадить.

Пример 3
people=3, conflicts=[] → True
Ограничения
  • 1 ≤ people ≤ 2000
  • 0 ≤ len(conflicts) ≤ 10⁴
  • conflicts[i] = [a, b], 1 ≤ a, b ≤ people, a ≠ b
  • Каждая пара участников упомянута не больше одного раза
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСкладываются ли связи в дерево СредняяСколько изолированных групп в сети СредняяЦепочки отношений СредняяГруппы связанных серверов СредняяЛишний кабель Средняя
загружаем Python…
Вход
people=5, conflicts=[[1, 2], [2, 3], [4, 5]]
Ожидается
True

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