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

Ошибки и исключения · 12 из 13

Запись с откатом

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

Семью записывают на приём вместе или не записывают вовсе: если для кого-то не хватило места, остальных тоже снимают — иначе половина придёт, а половина нет.

Что сделать

Запишите семью на приём вместе — или не записывайте никого.

Что приходит

  • mesta — словарь «час → сколько свободных мест»; при удаче его функция и меняет

  • zayavki — список пар (имя, час)

  • predel — сколько раз можно записать одного человека

Что вернуть

Если записать можно всех — имена в порядке записи, а места в mesta уменьшены; если хоть одну нельзя — None, и mesta не тронут.

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

Пример

Мест в 9 — два, в 10 — одно. Иванов и Иванова оба на 9: записаны оба, ответ ["Иванов", "Иванова"], мест в 9 стало 0. Будь в 9 одно место, Иванову не хватило бы — и Иванова тоже снимают: None, места прежние.

Тот же пример кодом
Перед вызовом
mesta = {9: 2, 10: 1}
Вызов
(zapisat_gruppu(mesta, [('Иванов', 9), ('Иванова', 9)], 2), mesta)
Вернуть
(['Иванов', 'Иванова'], {9: 0, 10: 1})
Ctrl+Enter — проверить

Обсуждение

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

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