26.09 Прочие прототипы
Ошибка.
Попробуйте повторить позже
Входной файл содержит сведения о заявках на бронирование помещения для проведения консультаций. Каждая заявка содержит время начала и окончания консультации (в минутах от начала суток), а также сумму, которую готовы заплатить за проведение консультации. Два мероприятия можно провести, если время окончания одного меньше или равно времени начала другого.
Определите максимальную сумму оплаты, которую можно получить за день, а также общую длительность всех выбранных консультаций. Если максимальный доход можно получить несколькими способами, то в ответ нужно записать минимальную общую продолжительность консультаций, при которой будет получен максимальный доход.
Входные данные:
В первой строке входного файла — натуральное число (
) —количество заявок. В каждой из
следующих
строк записаны три числа: время начала и окончания консультации (в минутах от начала суток, от
до
) и сумма оплаты.
Выходные данные:
Два числа через пробел: максимальную сумму оплаты за день и суммарную длительность всех выбранных консультаций.
Пример входного файла:
Максимальный доход достигается при выборе заявок ,
,
. Общая продолжительность:
. Ответ:
.
f = open(’26_3.txt’) n = int(f.readline()) requests = sorted([list(map(int, line.split())) for line in f]) max_profit = [0] * 1441 total_duration = [0] * 1441 for start, end, payment in requests: max_prev_profit = max(max_profit[:start + 1]) time_min = 10 ** 10 for i in range(start + 1): if max_profit[i] == max_prev_profit: if total_duration[i] < time_min: time_min = total_duration[i] time_with_max_profit = i new_profit = max_prev_profit + payment if new_profit > max_profit[end]: max_profit[end] = new_profit current_duration = end - start + 1 total_duration[end] = current_duration + total_duration[time_with_max_profit] elif new_profit == max_profit[end]: current_duration = end - start + 1 if current_duration < total_duration[end]: total_duration[end] = current_duration + total_duration[time_with_max_profit] final_profit = max(max_profit) final_time = total_duration[max_profit.index(final_profit)] print(final_profit, final_time)
Специальные программы

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

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

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

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

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

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