Задание 26 ЕГЭ по информатике · 0AF4A5

Журнал сервера и резервные копииВысокаяКЭС 3.10
Сервер выполняет запросы на передачу данных. Для каждого запроса в журнале указаны время регистрации, идентификатор клиента и объём переданных данных. Переданные данные сохраняются в специальном разделе памяти сервера вместимостью K Кбайт. Каждый раз, когда для очередного запроса недостаточно свободной памяти, сервер создаёт резервную копию всех накопленных данных, после чего освобождает раздел и продолжает выполнение запросов. Определите идентификатор клиентского устройства, с которого на сервер был передан наибольший общий объём данных, а также сумму объёмов двух наибольших резервных копий, созданных не позднее 11:59:59.
В первой строке входного файла находятся натуральные числа N и K: количество записей журнала и вместимость раздела памяти в Кбайт. В каждой из следующих N строк записаны время в формате ЧЧ:ММ:СС, идентификатор клиента C и объём данных S в Кбайт. Выведите два числа: сначала идентификатор клиента, затем сумму объёмов двух наибольших подходящих резервных копий.
1_0AF4A5.txt

Показать ответ
7040 52204
Подсказки (3)
  1. Какие данные нужно накапливать отдельно для каждого клиента, а какие — для каждой резервной копии?
  2. Храните суммы объёмов по идентификаторам клиентов и текущий объём данных в разделе. Перед добавлением запроса, который не помещается, сохраните текущий объём как резервную копию.
  3. При обработке каждой записи: если текущий объём плюс S больше K, добавьте текущий объём в список копий и обнулите его; затем прибавьте S. После прохода найдите максимальную сумму по клиентам и сумму двух максимальных копий со временем не позднее 11:59:59.
Решение
1. Для каждого идентификатора клиента поддерживаем суммарный объём переданных данных. Это можно сделать словарём, не храня весь журнал.
total[C]+=S

2. Поддерживаем объём данных, накопленных в специальном разделе. Если очередной запрос не помещается, текущий объём становится резервной копией, после чего раздел освобождается.
current+S>K⇒backups.append(current), current=0

3. После освобождения раздела добавляем объём текущего запроса. Так моделируется последовательная обработка журнала.
current+=S

4. Из словаря выбираем идентификатор с наибольшей суммой. Среди резервных копий, созданных не позднее 11:59:59, выбираем две наибольшие и складываем их объёмы.

5. Времена можно сравнивать как строки формата ЧЧ:ММ:СС или перевести в секунды. Так как записи идут в хронологическом порядке, момент создания копии определяется временем запроса, перед которым раздел пришлось освободить.
Частые ошибки
  • Создают резервную копию после добавления запроса, хотя копирование выполняется перед добавлением, если запрос не помещается.
  • Забывают обнулить объём раздела после создания резервной копии.
  • Учитывают резервные копии после 11:59:59.
  • Ищут двух клиентов с наибольшими объёмами вместо двух наибольших резервных копий.
  • Хранят все записи журнала и используют слишком много памяти при ограничении $N < 1\,000\,000$.

Источник: Открытый банк ФИПИ

Похожие задания

26Сервер выполняет запросы на передачу данных. Сведения о каждом выполненном запросе — время регистрации…Журнал сервера и резервные копии · 09681E26Сервер выполняет запросы на передачу данных, при этом сведения о каждом выполненном запросе (время…Журнал сервера и резервные копии · 1E4F5226Сервер выполняет запросы на передачу данных. Сведения о каждом запросе — время регистрации, идентификатор…Журнал сервера и резервные копии · 83B7FD26Сервер выполняет запросы на передачу данных. Сведения о каждом выполненном запросе — время регистрации…Журнал сервера и резервные копии · A4B35126Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 3, а во второй — 2…Игровая стратегия с обоснованием · 02861826В магазине для упаковки подарков есть N кубических коробок из материалов двух видов. Одну коробку можно…Коробки и коржи: вложение с заданной разностью · 05BFA6

Нужен репетитор по информатике?

Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.

Репетиторы по информатике

Подбор репетитора

Напишите, что нужно, — команда Precettore подберёт репетитора и свяжется с вами.

Готовьтесь к ЕГЭ по информатике в Precettore

Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.