26.06 Распределение объектов по местам (хранение багажа, парковки, кафе, гостиницы)
Ошибка.
Попробуйте повторить позже
В городе N расположено тайм-кафе (кафе, в котором люди платят не за продукты и заказы, а за то, сколько времени они провели в нём). 1 минута – 5 рублей. Входной файл содержит заявки клиентов. В заявке указано время прихода клиента и время ухода клиента. Клиент занимает один из столиков с минимальным номером. Столы пронумерованы начиная с единицы. Следующий клиент может занять столик со следующей минуты после освобождения столика. Если пришло несколько клиентов одновременно, то садится за стол клиент с наименьшим временем пребывания. Время ухода клиента также идёт в учёт стоимости его посещения заведения, время ухода занимает 1 минуту. Если в момент прибытия клиента все столы заняты, то клиент уходит. Определите сколько клиентов сможет занять столик, а также сколько рублей тайм-кафе заработает.
Входные данные: В первой строке файла находится натуральное число K, не превышающее 1000, – количество столиков в тайм кафе. Во второй строке файла находится натуральное число N, не превышающее 1000 – количество клиентов. В последующих строках записано по два числа, не превышающих 1440: время прибытия клиента, время ухода клиента.
Запишите в ответ два числа через пробел: количество клиентов, которые смогли занять столик, и количество рублей, которое заработало тайм-кафе.
Решение (Python)
file = open(’26_1.txt’) count_tables = int(file.readline()) #количество столиков в тайм-кафе count_client = int(file.readline()) #количество клиентов #считываем и сортируем время прибытия и ухода для каждого клиента array_client = sorted(list(map(int,i.split())) for i in file) count = 0 #количество клиентов, занявших столик cost = 0 #сумма заработанных денег #инициализируем список, в котором будем хранить у соответствующего столика время ухода клиента tables = [-1]*count_tables for start,end in array_client: #проходимся циклом по каждому клиенту for i in range(len(tables)): #проходимся по списку столиков if start > tables[i]: #если время прибытия клиента больше, чем значение у столика tables[i] = end #тогда записываем за столик время ухода клиента count += 1 cost += 5 * (end - start + 1)# 1 минута = 5 рублей. Учитываем также минуту ухода break print(count,cost)
Специальные программы

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

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

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

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

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

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