You are given an integer
numberOfUsersrepresenting the total number of users and an arrayeventsof 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_stringistring 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
idihad become offline attimestampifor 60 time units. The user will automatically be online again at timetimestampi + 60.Return an array
mentionswherementions[i]represents the number of mentions the user with idihas across allMESSAGEevents.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 |