#XMOJ11803. 回声圆圈
回声圆圈
说明
时间限制:1 Sec
内存限制:256 MB
输入文件:echo.in 输出文件:echo.out
小明和佳佳在太空站里发明了一种叫「回声圆圈」的游戏。小伙伴们会陆陆续续走进圆圈加入游戏,也有人会离开圆圈。一场游戏里,一共会发生三种事情:
- 有小伙伴走进圆圈,加入游戏(指令以+开头,后面跟着他的名字);
- 有小伙伴离开圆圈,退出游戏(指令以-开头,后面跟着他的名字);
- 圈里有人喊话,对当时圆圈里的所有人(除了他自己)说一句话(指令是喊话人:要说的话的形式)。
不过这个游戏发生在真空里,声音根本传不出去。为了让消息送达,小明安排了能在真空中飞行的穿梭小鸟:每次有人喊话,穿梭小鸟就会把这句话捎给圆圈里每一个在场的人,保证谁都没漏掉;每只小鸟携带信息时消耗的点数,正好等于它带的这句话的字数。
小明把一整场游戏里发生的所有事情都记了下来,他想知道:游戏结束时,这些穿梭小鸟一共消耗了多少点数?
输入格式
第一行一个整数 $T$($1 \le T \le 100$),表示游戏场数。
接下来有 $T$ 场游戏。每场游戏的第一行是一个整数 $n$($1 \le n \le 100$),表示这场游戏里发生的事情的条数;接下来 $n$ 行,每行描述一件事,格式如下:
- +名字:表示「名字」走进圆圈(名字由大小写英文字母、数字组成,不含空格);
- -名字:表示「名字」离开圆圈;
- 喊话人:要说的话:表示「喊话人」向圆圈里所有人喊出一句话。其中「要说的话」可以由英文字母、数字和空格组成,但开头和结尾都不是空格;「要说的话」也可以是空的(即冒号后面什么都没有)。
保证输入一定合理:同一个人不会重复走进圆圈,也不会在不在圆圈里时离开;所有名字区分大小写。
输出格式
输出 $T$ 行,第 $i$ 行一个整数,表示第 $i$ 场游戏结束后,穿梭小鸟一共消耗的点数。
样例
样例 1
2
7
+Mike
+Kate
+John
Mike:hello
-John
Kate:hi
-Kate
7
+Mike
-Mike
+Mike
+Kate
Mike:Hi I am here
-Mike
-Kate
12
14
样例说明:
第一场游戏里,先是 Mike 确认加入圆圈,随后 Kate 加入,接着 Mike 喊了句 hello,穿梭小鸟就忙着送信了;随后 John 加入,John 又离开了,最后 Kate 喊了句 hi。等小明算完,这一场穿梭小鸟一共消耗了 点数。
第二场游戏里,Mike 进进出出,Kate 来去匆匆,Mike 在 Kate 离开前喊了一句带了好几个空格的长话。整场算下来穿梭小鸟一共消耗了 $14$ 点数。
样例 2
1
7
+Anna
+Tom
+Lucy
Tom:hi
-Tom
-Lucy
Anna:bye
4
样例说明:
这场游戏里,Tom 和 Lucy 都加入后又都离开了;等到 Anna 喊「bye」的时候,圆圈里已经空无一人,这一嗓子没有小鸟需要出动,没消耗新的点数。整场游戏最后只算得 点数。
数据范围
对于 $100\%$ 的测试点:$1 \le T \le 100$,每场游戏 $1 \le n \le 100$,每条指令的长度不超过 $100$ 个字符。
相关
在下列比赛中: