Войти Создать аккаунт

Кортежи и множества · 18 из 20

Рассадить враждующих

Задействованы также: Циклы, Словари

Некоторые гости не разговаривают друг с другом. Организатор хочет рассадить всех за два стола так, чтобы ни одна враждующая пара не оказалась вместе.

Что сделать

Рассадите гостей за два стола так, чтобы враги не оказались вместе.

Что приходит

  • vrazhda — словарь «имя → с кем он не желает сидеть»; вражда взаимна

Что вернуть

Пару списков по алфавиту — два стола, первым тот, где первое по алфавиту имя; ни с кем не враждующие — за первым; нельзя — None.

Допишите функцию razdelit_na_dva_stola в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

Пример

Галя и Петя не разговаривают, Вася ни с кем не враждует. Галя — за первый стол, Петя — за второй, Вася — за первый: (["Вася", "Галя"], ["Петя"]). Если А против Б, Б против В, а В против А, два стола их не разведут — None.

Тот же пример кодом
Вызов
razdelit_na_dva_stola({'Галя': ['Петя'], 'Петя': ['Галя'], 'Вася': []})
Вернуть
(['Вася', 'Галя'], ['Петя'])
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.