26.09 Прочие прототипы
Ошибка.
Попробуйте повторить позже
Администратор игрового клуба N, работающего с 05:00 до 23:00 заполняет расписание посещений клиентов на завтра. Отсчёт компьютеров начинается с 1. В течении дня клиенты звонили администратору и говорили, в какой период они хотят прийти и на сколько они хотят забронировать компьютер. Если в данный период все компьютеры заняты, то администратор не записывает данного человека в расписание на следующий день. На следующую минуту после освобождения компьютера происходит уборка и проверка оборудования. Данные процедуры длятся 10 минут. На следующую минуту после уборки и проверки следующий клиент может занять данный компьютер.
Входные данные: В первой строке файла находится натуральное число K, не превышающее 5000 – количество клиентов. Во второй строке файла записано натуральное число N – количество компьютеров в игровом клубе. В последующих строках записаны по два числа, не превышающих 1440 в каждой строке: время, когда клиент хочет прийти в игровой клуб и на сколько минут он хочет забронировать компьютер.
Запишите в ответ два числа через пробел: количество клиентов, которые смогли забронировать компьютер и количество человек, которое сидело за 7-ым компьютером.
file = open(’26_5__3cjxc.txt’) count_client = int(file.readline()) #количество клиентов count_computers = int(file.readline()) #количество компьютеров array_clients = list(list(map(int,i.split())) for i in file) #считываем время прихода клиента и #желаемое время брони #для каждого компьютера инициализируем нулями все свободное время computers = [[0 for i in range(1440)] for j in range(count_computers)] count = [0]*count_computers #количество игроков, сидевших за каждым компьюетром for start,duration in array_clients: #пробегаемся по списку клиентов for i in range(len(computers)): #пробегаемся по списку компьютеров #если время прихода клиента попадает в диапазон от 5 утра до 23 вечера и все желаемое время #компьютер будет свободен if 60*23 >= start + duration and start >= 60 * 5 and sum(computers[i][start:start+duration+12]) == 0: #если ни одна минута не занята в протяжении от начала до конца сеанса count[i] += 1 #пробегаемся циклом по только что забронированному времении for time in range(start,start+duration+12): computers[i][time] = 1 #инициализируем все единицами, то есть помечаем, что занято break print(sum(count),count[6])
Специальные программы

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

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

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

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

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

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