You are given an integer
numberOfUsers
representing the total number of users and an arrayevents
of sizen x 3
.Each
events[i]
can be either of the following two types:
Message Event:
["MESSAGE", "timestampi", "mentions_stringi"]
This event indicates that a set of users was mentioned in a message at
timestampi
.The
mentions_stringi
string can contain one of the following tokens:
id<number>
: where<number>
is an integer in range[0,numberOfUsers - 1]
. There can be multiple ids separated by a single whitespace and may contain duplicates. This can mention even the offline users.ALL
: mentions all users.HERE
: mentions all online users.Offline Event:
["OFFLINE", "timestampi", "idi"]
- This event indicates that the user
idi
had become offline attimestampi
for 60 time units. The user will automatically be online again at timetimestampi + 60
.Return an array
mentions
wherementions[i]
represents the number of mentions the user with idi
has across allMESSAGE
events.All users are initially online, and if a user goes offline or comes back online, their status change is processed before handling any message event that occurs at the same timestamp.
Note that a user can be mentioned multiple times in a single message event, and each mention should be counted separately.
1 | package main |