Стандартная библиотека · 19 из 19
Фотографы на день
В субботу у студии съёмки идут внахлёст: свадьба, портреты, семейная фотосессия, выпускной. Лена расписывает их по фотографам и хочет позвать как можно меньше людей. Правило у неё простое: съёмки берутся по времени начала, и каждую получает свободный фотограф с самым маленьким номером — Кирилл первый, он хозяин студии. Если свободных нет, Лена зовёт ещё одного. Кончил в два — в два уже может начать следующую.
Что сделать
Распишите съёмки дня по фотографам: каждую — свободному с самым маленьким номером, а если свободных нет — новому.
Что приходит
semki— список съёмок(название, начало, конец), время — строкой «ЧЧ:ММ»
Что вернуть
Словарь «номер фотографа → названия его съёмок по порядку», номера с 1 подряд.
Допишите функцию raspredelit в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
Свадьба 10:00–13:00 достаётся фотографу 1, портрет 11:00–14:00 — второму: первый занят. Семейная съёмка в 13:30 — снова первому, он к тому времени освободился: {1: ["Свадьба", "Семья"], 2: ["Портрет"]}.
raspredelit([("Свадьба", "10:00", "13:00"), ("Портрет", "11:00", "14:00"), ("Семья", "13:30", "15:00")])
{1: ['Свадьба', 'Семья'], 2: ['Портрет']}
Время — строка «ЧЧ:ММ», всегда две цифры на часы и на минуты. Конец каждой съёмки позже её начала.
Съёмки распределяются по времени начала; если начинаются одновременно — в том порядке, в каком стоят в списке.
Фотограф свободен к началу съёмки, если его последняя съёмка кончилась не позже этого начала (кончил в 14:00 — в 14:00 свободен). Съёмка достаётся свободному фотографу с наименьшим номером — не тому, кто освободился раньше всех. Свободных нет — заводится новый, со следующим номером.
Ответ — словарь: номер фотографа (с 1, по возрастанию) → список названий его съёмок в порядке начала. Нет съёмок — пустой словарь.
Съёмок за день бывают тысячи (студия считает и чужие площадки): на каждую нужна не очередь из всех фотографов, а куча — heapq.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.