Словари · 19 из 20
Читальный зал без мест
В районной библиотеке открыли читальный зал с бронью: читатель записывается на часы, когда придёт. Мест немного, и библиотекарь хочет повесить на дверь табличку — в какие часы сегодня мест нет совсем, чтобы без брони не приходили зря. Брони записаны по читателям: у кого-то одна, у кого-то две за день.
Что сделать
Найдите, в какие промежутки дня в зале заняты все места, и сложите их в список для таблички.
Что приходит
broni— словарь: читатель → список его броней(с, до)в часах; «до» — час, когда он уходитmest— сколько мест в зале
Что вернуть
Список промежутков (с, до), когда заняты все места, — по порядку, соседние склеены в один.
Допишите функцию kogda_net_mest в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Аня с 10 до 13, Боря с 11 до 14, Вера с 12 до 15, мест — два. С 11 в зале двое, с 12 — трое, с 13 снова двое, с 14 — одна Вера. Мест нет с 11 до 14 — [(11, 14)].
kogda_net_mest({"Аня": [(10, 13)], "Боря": [(11, 14)], "Вера": [(12, 15)]}, 2)
[(11, 14)]
Бронь (с, до) занимает место с часа «с» до часа «до», не включая «до»: ушедший в 12 освобождает место для пришедшего в 12. Часы бывают и дробными — 9.5 значит половина десятого. Мест нет, когда занятых не меньше mest. Промежутки в ответе — по возрастанию, и соседние склеены: если с 11 до 12 занято трое, а с 12 до 14 — двое при двух местах, это один промежуток (11, 14). Брони одного читателя между собой не пересекаются. Читатель без броней — пустой список. Мест хотя бы одно. Мест хватает весь день — пустой список.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.