Контест Middle Потоки и буферы обновлено

Сессии пользователей по потоку событий

Условие

Поток событий аналитики: первая строка n gap, дальше n строк <логин> <время в секундах>. События пришли не по порядку (разные серверы, задержки доставки).

Сессия пользователя это серия его событий, в которой соседние по времени события отстоят друг от друга не больше чем на gap секунд. Если разрыв больше gap, начинается новая сессия. Одинаковые времена допустимы.

Для каждого пользователя в порядке возрастания кодов символов логина выведи <логин> <число сессий> <длительность самой длинной сессии> (длительность это время последнего события сессии минус время первого).

n ≤ 2000, время до 10⁹.

Пример

6 1800
anna 100
boris 50
anna 1000
anna 5000
boris 1850
anna 6800
anna 2 1800
boris 1 1800

Как подойти

Подсказки: 2
  1. Сгруппируй времена по пользователю и отсортируй каждую группу.
  2. Новая сессия, когда разница соседних времён строго больше gap.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.