#T008. 聊天服务器流量统计
聊天服务器流量统计
Description
Polycarp 正在开发一个名为 "Polychat" 的新项目。根据现代 IT 的发展趋势,他决定这个项目还应该包含聊天功能。为了实现这个目标,Polycarp 在笔记本电脑前花了几个小时,开发了一个可以处理三种命令的聊天服务器:
- 加入聊天对象(
Add命令 )。 - 从聊天中删除某人(
Remove命令 )。 - 将一个人的信息发送给当前聊天中的所有人,包括发送信息的人(
Send命令 )。
现在,Polycarp 希望计算服务器在处理一组特定命令时将产生的出站流量。
Polycarp 的聊天服务器不会因为 Add 和 Remove 命令产生流量。只有在处理 Send 命令时,服务器会向每个聊天参与者(包括发送者自己)发送 字节,其中 是信息的长度。
由于 Polycarp 没有时间,他请求您帮助解决这个问题。
Input
输入文件将包含不超过 条命令,每条命令独立成行。每行不得超过 个字符。命令格式如下:
+<name>为Add命令。-<name>用于Remove命令。<sender_name>:<message_text>用于Send命令。
<name> 和 <sender_name> 是由字母和空格组成的字符串,表示用户名。<message_text> 可以包含字母、符号、数字和空格,但不能以空格开始或结束,不过可以是空行。
保证输入的数据是正确的,也就是说,如果聊天中已经有这样名字的人,就不会有 Add 命令;如果聊天中没有这样名字的人,就不会有 Remove 命令。
所有名字都区分大小写。
Output
打印一个数字 -- 问题的答案。
+Mike
Mike:hello
+Kate
+Dmitry
-Dmitry
Kate:hi
-Kate
+Mike
-Mike
+Mike
Mike:Hi I am here
-Mike
+Kate
-Kate
9
14