Сервер выполняет запросы на передачу данных, при этом сведения о каждом выполненном запросе (время регистрации, идентификатор клиента и объём переданных данных) сохраняются в журнале работы, а сам запрос - в специальном разделе памяти сервера, имеющем ограниченный объём.
Каждый раз, когда для сохранения данных в этом разделе остаётся недостаточно свободной памяти, сервер создаёт резервную копию всех накопленных там данных, после чего освобождает специальный раздел и продолжает выполнение запросов.
Напишите программу для обработки журнала работы сервера и с её помощью определите сумму идентификаторов двух клиентских устройств, с которых на сервер был передан наименьший общий объём данных, а также сумму объёмов (в Кбайт) двух последних по времени резервных копий специального раздела, выполненных не позднее 11:59:59.
Входные данные
Первая строка входного файла (журнала работы сервера) содержит два натуральных числа:
N(N< 1 000 000) - количество строк в журнале
К (К < 1 000 000) - вместимость специального раздела памяти сервера в Кбайт.
Каждая из следующих N строк содержит информацию об одном выполненном запросе: время регистрации запроса в формате ЧЧ:ММ:СС (часы, минуты, секунды) и два натуральных числа: (С < 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 соответственно.
Ответ для приведённого примера: 606 220 000
Типовой пример имеет иллюстративный характер.
Для выполнения задания используйте данные из прилагаемого файла.
Как решать — два шага. В A1 — число записей, в B1 — лимит памяти K (22328).
Данные со строки 2.
По времени не сортируем — нужен порядок файла.
1) Пара с наименьшим общим объёмом. Сортируем по столбцу B (id клиента).
Для каждого клиента считаем сумму объёмов (СУММЕСЛИ).
Среди всех пар ищем пару с наименьшим суммарным объёмом и берём сумму их идентификаторов: 9316 + 7932 = 17248.
2) Две последние утренние копии. Возвращаемся к исходному порядку строк файла.
Идём сверху вниз, копим память до лимита K; при переполнении до 12:00 запоминаем размер копии.
Берём две последние по времени копии (не две наибольшие): 22309 + 20838 = 43147.
Ответ: 17248 43147.