user_count участников с номерами от 0 до user_count - 1. Дан журнал событий log, каждое событие — тройка строк одного из двух видов:
- ["MESSAGE", время, текст] — сообщение с упоминаниями. текст — это либо несколько токенов вида id<номер> через пробел (номера могут повторяться, упоминать можно и тех, кто сейчас отошёл), либо ALL — упоминание всех участников, либо HERE — упоминание всех, кто сейчас на месте.
- ["OFFLINE", время, номер] — участник номер отходит ровно на 60 единиц времени: в момент время + 60 он автоматически снова на месте.
Сначала все на месте. Журнал не обязательно упорядочен по времени. Если в один момент есть и смены статуса, и сообщения, статусы обновляются раньше, чем обрабатываются сообщения.
Верните массив, где i-й элемент — сколько раз всего упомянули участника i. Каждое упоминание считается отдельно, даже если в одном сообщении номер встретился несколько раз.user_count=3, log=[['MESSAGE', '5', 'id2 id2 id0'], ['OFFLINE', '7', '2'], ['MESSAGE', '30', 'HERE']] → [2, 1, 2]
В момент 5 участник 2 упомянут дважды, участник 0 — один раз. В момент 7 участник 2 уходит до момента 67, поэтому HERE в момент 30 достаётся только участникам 0 и 1.
user_count=2, log=[['OFFLINE', '40', '1'], ['MESSAGE', '100', 'HERE'], ['MESSAGE', '41', 'ALL']] → [2, 2]
События идут не по порядку времени. ALL в момент 41 задевает обоих, хотя участник 1 отошёл. В момент 100 участник 1 уже вернулся (в момент 40 + 60 = 100), и смены статуса обрабатываются раньше сообщений того же момента, так что HERE тоже достаётся обоим.
user_count=1, log=[['OFFLINE', '3', '0'], ['MESSAGE', '3', 'HERE'], ['MESSAGE', '3', 'id0']] → [1]
Участник 0 уходит в момент 3 раньше, чем обрабатываются сообщения этого момента, поэтому HERE его не задевает, а прямое упоминание засчитывается.
user_count ≤ 100len(log) ≤ 100log[i][0] — "MESSAGE" или "OFFLINE"user_count - 1OFFLINE приходит только для участника, который в этот момент на местеuser_count=3, log=[['MESSAGE', '5', 'id2 id2 id0'], ['OFFLINE', '7', '2'], ['MESSAGE', '30', 'HERE']]
[2, 1, 2]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 70 тестов на сервере, включая скрытые.