Сервер выполняет запросы на передачу данных, при этом сведения о каждом выполненном запросе (время регистрации, идентификатор клиента и объём переданных данных) сохраняются в журнале работы, а сам запрос — в специальном разделе памяти сервера, имеющем ограниченный объём.
Каждый раз, когда в специальном разделе остаётся недостаточно свободной памяти, сервер создаёт резервную копию всех накопленных там данных, после чего освобождает раздел и продолжает выполнение запросов.
Напишите программу для обработки журнала работы сервера и с её помощью определите:
- идентификатор клиентского устройства, с которого на сервер был передан наибольший суммарный объём данных не позднее 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;
- сумма объёмов двух наибольших резервных копий (в Кбайт).
Типовой пример организации данных во входном файле
|
1 2 3 4 5 6 7 8 9 |
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 (в объёме 130000 Кбайт),
- 07:07:07 (в объёме 90000 Кбайт),
- 21:21:21 (в объёме 122000 Кбайт),
- 23:23:23 (в объёме 120000 Кбайт).
Всего на сервер передано 596000 Кбайт данных:
- 158000 Кбайт от клиента 101,
- 122000 Кбайт от клиента 202,
- 182000 Кбайт от клиента 303,
- 134000 Кбайт от клиента 404.
Ответ для примера:
|
1 |
101 252000 |
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
Основная волна ЕГЭ по информатике 18.06.2026 – задание №26
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
f = open('26.txt') N, K = [int(x) for x in f.readline().split()] a = [] for s in f: t, idd, r = s.split() idd, r = int(idd), int(r) a.append([t, idd, r]) a.sort() d = [0] * 1_000_000 backup = [] server = 0 for t, idd, r in a: if int(t[:2]) < 12: d[idd] += r server += r if server > K: backup.append(server - r) server = r backup.sort() print(d.index(max(d)), backup[-1] + backup[-2]) |
Ответ: 9517 46436
