#CF163E. e-Government
e-Government
e-Government
- 时间限制:1 秒
- 内存限制:256 MiB
题目描述
来自 Embezzland 的最强的程序员齐聚一堂,为开发项目“电子政府”的一部分——一个自动收集、分析新闻数据的统计系统而竞争。
所有的 个市民都有可能成为 Embezzland 政府的成员。市民的名字分别为 。所有的名字都是不同的。初始时所有 个市民都是政府的成员。系统需要支持以下操作:
- 让市民 加入政府。
- 让市民 退出政府。
- 给出一段报纸上的文本,计算其政治相关性。具体地,对每一名当前在政府中的市民,统计他的名字作为文本的子串出现了多少次。文本的政治相关性是所有政府成员名字出现次数的和。
你要实现这个系统。
输入格式
第一行两个整数 , 为接下来的询问个数。
接下来 行,每行一个由小写字母构成的字符串 。
接下来 行,每行一个询问。前两类操作分别以 +、- 开头,后面无空格地紧跟着一个整数 ,表示操作市民的编号;第三类操作以 ? 开头,后面无空格地紧跟着一个小写字母构成的字符串,表示询问文本。
保证所有输入的字符串——名字和文本均由小写字母组成且非空。所有名字长度和 ,所有询问文本长度和 。
有的操作会让你把一个已经在政府中的市民加入政府,或让你把一个不在政府中的市民移除政府。请忽略这些操作。
输出格式
对于每个询问,输出一行一个整数表示答案。
样例输入 1
7 3
a
aa
ab
?aaab
-2
?aaab
-3
?aaab
+2
?aabbaa
样例输出 1
6
4
3
6
数据范围
- 。
- 所有姓名互不相同,且姓名总长度不超过 。
- 所有询问文本的总长度不超过 。
- 姓名与询问文本均为非空小写英文字母串。
- 重复加入已在政府中的成员或移除已不在政府中的成员时,忽略该操作。