ALEXMATH

Информатика. ЕГЭ

Задания для подготовки

Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников

Перейти к заданиям

Задание 26. Информатика. ЕГЭ 2026. Основная волна. 18.06.2026

Просмотры: 148
Изменено: 5 августа 2026

Сервер выполняет запросы на передачу данных, при этом сведения о каждом выполненном запросе (время регистрации, идентификатор клиента и объём переданных данных) сохраняются в журнале работы, а сам запрос - в специальном разделе памяти сервера, имеющем ограниченный объём. Каждый раз, когда в специальном разделе остаётся недостаточно свободной памяти, сервер создаёт резервную копию всех накопленных там данных, после чего освобождает раздел и продолжает выполнение запросов. Напишите программу для обработки журнала работы сервера и с её помощью определите идентификатор клиентского устройства, с которого на сервер был передан наибольший суммарный объём данных не позднее \(11{:}59{:}59,\) а также сумму объёмов двух наибольших резервных копий специального раздела (в Кбайт).

Входные данные

Первая строка входного файла (журнал работы сервера) содержит два натуральных числа: \(N\) \((N < 1~000~000)\) – количество строк в журнале и \(K\) \((K < 1~000~000)\) – вместимость специального раздела памяти сервера в Кбайт. Каждая из следующих \(N\) строк содержит информацию об одном выполненном запросе: время регистрации в формате ЧЧ:ММ:СС (часы, минуты, секунды) и два натуральных числа: \(C\) \((C < 1~000~000)\) – идентификатор клиентского устройства, \(S\) \((S < K)\) – объем данных запроса в Кбайт.

Выходные данные

Два целых положительных числа: сначала идентификатор клиентского устройства, с которого на сервер был передан наибольший суммарный объём данных не позднее 11{:}59{:}59, а также сумму объёмов двух наибольших резервных копий специального раздела (в Кбайт).

Типовой пример организации данных во входном файле

\(8 \,\, 140000\)
\(01{:}01{:}01 \,\, 101 \,\, 20000\)
\(03{:}03{:}03 \,\, 202 \,\, 110000\)
\(05{:}05{:}05 \,\, 101 \,\, 90000\)
\(07{:}07{:}07 \,\, 303 \,\, 62000\)
\(10{:}10{:}10 \,\, 101 \,\, 48000\)
\(15{:}15{:}15 \,\, 202 \,\, 12000\)
\(21{:}21{:}21 \,\, 303 \,\, 120000\)
\(23{:}23{:}23 \,\, 404 \,\, 134000\)

При таких исходных данных резервное копирование специального раздела выполняется четыре раза: \(05{:}05{:}05\) (в объёме \(130~000\) Кбайт), в \(07{:}07{:}07\) (в объёме \(90~000\) Кбайт), в \(21{:}21{:}21\) (в объёме \(122~000\) Кбайт) и в \(23{:}23{:}23\) (в объёме \(120~000\) Кбайт).

Всего на сервер передано \(596~000\) Кбайт данных: \(158~000,\) \(122~000,\) \(182~000\) и \(134~000\) Кбайт от клиентов с идентификаторами \(101, \, 202, \, 303\) и \(404\) соответственно. Ответ для приведённого примера: \(101 \,\,252000.\)

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.

Решение:

Python


fd = open('26.txt')
N, K = map(int, fd.readline().split())

requests = []
for line in fd:
    t, c, s = line.split()
    requests.append((t, int(c), int(s)))
requests = sorted(requests, key=lambda r: r[0])

clients = {}
reserve = []
spec = 0

for req in requests:
    if spec + req[2] > K:
        reserve.append(spec)
        spec = req[2]
    else:
        spec += req[2]
    if req[0] <= '12:00:00':
        clients[req[1]] = clients.get(req[1], 0) + req[2]

mx = max(clients.values())
mx_client = [k for k in clients if clients[k] == mx]
reserve.sort()
print(mx_client[0], sum(reserve[-2:]))

Ответ: \(9517 \,\, 46436\)

Обсуждение задания

Здесь пока нет ни одного комментария. Будьте первым!

kege1
kege2
kege3
Новый тренажёр-эмулятор
Станции КЕГЭ

Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене.

Новое видео

Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»

Поддержать автора сайта!

Поддержите автора сайта, если материалы, размещённые здесь, оказались вам полезны.

Совершая донат, вы соглашаетесь с Условиями использования

Расписание пробников Статграда в 2026/27 учебном году