#P1033. 可清空动态多重集合
可清空动态多重集合
题目:可清空动态多重集合
题目描述
维护一个多重集合 (允许重复元素),支持三种操作:
I v:向集合加入一个整数 。Q x:询问集合中「」的元素个数,并输出该数量。C:清空集合(令 )。
输入格式
-
第一行一个整数 (操作数量)。
-
接下来 行,每行是一条操作,形式为:
I v()Q x()C
输出格式
- 对于每条
Q x操作,输出一行一个整数,表示当前集合中「」的元素个数。
样例
输入
10
I 3
I 1
Q 2
I 2
Q 2
I 2
Q 2
C
Q 100
Q -5
输出
1
2
3
0
0
说明
- 清空后集合为空,再次查询的结果与空集一致。
- 你可以用任意数据结构实现;若采用分批排序+归并(如题干代码思路),注意在
Q x时需要返回「」的计数(即upper_bound(x))。
规模与数据梯度(建议)