26.06 Распределение объектов по местам (хранение багажа, парковки, кафе, гостиницы)
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов.
В аэропорту расположены камеры хранения, состоящие из ячеек. Ячейки камер хранения пронумерованы, начиная
с
. Пассажиры сдают багаж в эти ячейки. Багаж кладётся в свободную ячейку с минимальным номером. Известно время
размещения багажа в камеру хранения и время освобождения ячейки в камере хранения (в минутах с начала суток). Багаж
достаётся из ячейки в течение минуты. Начиная со следующей минуты, в ячейку можно положить другой багаж. Если все
ячейки заняты, то багаж сдать нельзя.
Входные данные:
В первой строке подается — число ячеек в камере хранения и
— число пассажиров. На каждой из следующих
строк записаны
числа: время размещения багажа в камере хранения и время освобождения ячейки в камере
хранения.
Определите, какое количество багажей сдали в течение суток и номер ячейки, в которую положили последний сданный багаж.
Выходные данные:
В ответ через пробел запишите два числа: количество багажей, которые сдали в ячейки хранения и номер ячейки, в которую положили последний сданный багаж. Пример входных данных:
Для указанных входных данных ответом будет
Решение (Python)
f = open("26-2__2yr4z.txt") # Считываем количество ячеек в камере хранения (K) и количество пассажиров (N) k, n = map(int, f.readline().split()) # Создаем список для хранения времени сдачи и выдачи багажа каждого пассажира # и считываем эти данные из файла, разделяя каждую строку на два числа a = [] for i in range(n): start, finish = map(int, f.readline().split()) a.append((start, finish)) # Инициализируем переменные для подсчета количества сданных багажей # и для хранения номера последней занятой ячей counter = 0 m = -1 # Создаем список для хранения состояния каждой ячейки (занята/свободна) storage = [-1] * k # Сортируем список пассажиров по времени сдачи багажа a.sort() # Проходим по каждому пассажиру for i in range(n): start = a[i][0] finish = a[i][1] # Проходим по каждой ячейке в камере хранения for j in range(k): # Если время сдачи багажа текущего пассажира больше времени освобождения ячейки if start > storage[j]: # Занимаем текущую ячейку багажом пассажира storage[j] = finish # Увеличиваем счетчик сданных багажей counter += 1 # Обновляем номер последней занятой ячейки m = j + 1 # Прерываем внутренний цикл, чтобы перейти к следующему пассажиру break # Выводим количество сданных багажей и номер последней занятой ячейки print(counter, m)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!