问题 5089 --天佑的多重整数集

5089: 天佑的多重整数集★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 49  解决: 26
[提交][状态][命题人:]

题目描述

最初天佑有一个空的多重整数集。朋友们向他提出以下类型的t个查询:

+ ai    将非负整数ai添加到多重整数集。注意,多重整数集中同一个整数可能会多次出现。

- ai   从多重整数集中删除一个非负整数ai。可以保证,在多重整数集中至少有一个ai

? s   计算多重整数集中匹配模式s(由01组成)的整数的个数(可重复)。在模式中,0代表偶数,而1代表奇数。如果十进制记数法中从右端开始的第i个数字与模式从右端开始的第i个奇偶匹配,则整数x与模式s匹配。如果模式比整数短,则在左端用0进行补充。类似地,如果整数比模式短,则在整数的左端用0进行补充。

例如,如果模式是s = 010,则整数92221250414与模式匹配,而整数3110251030不匹配。

输入

输入的第一行包含整数t1t100 000-天佑必须执行的操作数量。

接下来的t行查询。第i行以字符ci开始,表示对应操作的类型。如果ci等于'+''-',则后面有一个空格和一个整数ai0ai < 1018)不带前导零(除非是0)。如果ci等于'',则后面是一个空格和一组的01的序列,给出了长度不超过18的模式。

保证至少有一个类型为“?”的查询。

可以保证,任何时候从多重集中删除某个整数,集合中至少还有一个该整数存在。

输出

对于第三种类型的每个查询,打印出当前多重集合状态下,与给定模式匹配的整数的个数
样例输入
Copy
12
+ 1
+ 241
? 1
+ 361
- 241
? 0101
+ 101
? 101
- 101
? 101
+ 4000
? 0
样例输出
Copy
2
1
2
1
1

提示

样例2输入

4
+ 200
+ 200
- 200
? 0

样例2输出

1


注意:第三类查询才进行整数匹配。查询按照输入的顺序进行。

1.   1 and 241.

2.   361.

3.   101 and 361.

4.   361.

5.    4000.




来源

[提交][状态]