26.06 Распределение объектов по местам (хранение багажа, парковки, кафе, гостиницы)
Ошибка.
Попробуйте повторить позже
На вокзале есть камер хранения для пассажиров, которые пронумерованы с единицы. Приходя на вокзал, пассажир
кладет свои вещи в свободную камеру с минимальным номером. Известно время, когда пассажиры сдают и забирают
вещи (в минутах с начала суток). Камера доступна для багажа начиная со следующей минуты после
окончания срока хранения. В случае, когда свободных камер не находится, багаж не принимается и пассажир
уходит.
Определите пару пассажиров, которым удалось оставить вещи в камерах и у которых суммарное время хранения багажа максимально и кратно 53.
Входные данные. В первой строке входного файла находится число – количество камер хранения
(натуральное число, не превышающее 1000), во второй строке число
– количество пассажиров, сдающих багаж
(натуральное число, не превышающее 10000). Каждая из следующих
строк содержит два натуральных числа, не
превышающих 1440: время сдачи багажа и время выдачи багажа.
Выходные данные. Программа должна вывести одно число: максимальное суммарное время хранения багажа двух пассажиров, кратное 53.
f = open(’26.txt’) n = int(f.readline()) k = int(f.readline()) a = sorted([list(map(int, i.split())) for i in f]) ch = [[] for i in range(k)] # Список с ячейками для хранения багажа mx_kr_53 = -1 c53 = [-1]*53 # Максимальные времена стирки пассажиров с различными остатками от деления на 53 for i in a: # Перебор пассажиров for j in range(k): # Проход по ячейкам в поисках свободной if (not ch[j]) or (i[0] > ch[j][-1][1]): ch[j].append(i) # Добавляем багаж в ячейку tim = i[1]-i[0] # Время хранения багажа if tim % 53 == 0: # Для чисел, кратных 53, сохраняем 2 максимальных числа if tim >= mx_kr_53: c53[0] = mx_kr_53 mx_kr_53 = tim elif tim > c53[0]: c53[0] = tim elif tim > c53[tim % 53]: c53[tim % 53] = tim # Подсчитываем это время хранения break # Переходим к следующему пассажиру if c53[0] != -1 and mx_kr_53 != -1: mx_ans = c53[0]+mx_kr_53 for i in range(1, 27): if c53[i] + c53[53-i] > mx_ans and c53[i] != -1 and c53[53-i] != -1: mx_ans = c53[i] + c53[53-i] print(mx_ans)
Специальные программы

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

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

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

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

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

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