#C2158. Direct and Group Messaging Simulator
Direct and Group Messaging Simulator
Direct and Group Messaging Simulator
You are given a simulation of a messaging system which supports two types of messages:
- Direct messages — send a message to a specific user.
- Group messages — send a message to every user in a given group.
The input consists of a list of users, a set of groups (each with its member users), and a sequence of commands. Each command is one of the two formats:
SEND <user> <message>
: Send a direct message touser
.SEND_GROUP <group> <message>
: Send a message to all users belonging togroup
.
Your task is to simulate the process of sending messages according to the commands and then output the final state of each user's message box in JSON format. All messages must appear in the order they were received.
Note: If a message is sent to a user or group that does not exist, ignore the command.
inputFormat
The input is read from stdin and is formatted as follows:
- An integer U representing the number of users.
- A line with U space-separated user names.
- An integer G representing the number of groups.
- G lines follow. Each line contains a group's details in the format:
<group_name> <K> <user1> <user2> ... <userK>
, where K is the number of users in that group. - An integer C representing the number of commands.
- C lines follow, each representing a command in one of the following formats:
SEND <user> <message>
SEND_GROUP <group> <message>
<message>
may contain spaces.
outputFormat
Output the final state of all users' message boxes in JSON format on stdout. The output JSON object should map each user name to an array of messages (strings) in the order in which they were received.
## sample3
Alice Bob Charlie
3
Developers 2 Alice Bob
Designers 1 Charlie
Team 3 Alice Bob Charlie
3
SEND Alice Hello, Alice!
SEND_GROUP Team Hello, everyone!
SEND_GROUP Developers Code review at 5 PM
{"Alice": ["Hello, Alice!", "Hello, everyone!", "Code review at 5 PM"], "Bob": ["Hello, everyone!", "Code review at 5 PM"], "Charlie": ["Hello, everyone!"]}