给出一个多重集合(元素可以重复的集合),你需要提供以下操作:
+ x,向多重集合里添加一个元素x,多重集合内元素可以重复
- x,从多重集合中删除一个元素x,保证要删除的元素一定存在,如果存在多个x则仅删除其中任意1个
q,查询集合中的最小异或对的值,即找到集合中任何两个元素(可以相等)异或能得到的最小值,保证询问时集合包含的元素数量不少于2个,对于每个q操作,你需要输出查询的结果.
以上操作中涉及的操作数x均为非负整数.
第一行输入操作的数量(1≤n≤2×10^5),以下 n行每行表示一个操作,对于非负整数x满足0≤ x < 2^30
对于每个q操作,输出一行一个非负整数,表示询问的答案.
6 + 2 + 2 + 3 q - 2 q
0 1
样例解释 初始集合:{}.
操作1 向集合加入元素2,当前集合:{2}.
操作2 向集合加入元素2,当前集合:{2,2}.
操作3 向集合加入元素3,当前集合:{2,2,3}.
操作4 询问集合中的最小异或对,当前选取两个元素的合法方案有 (2,2), (2,3), (2,3),所以最小异或对的值为2⊕2=0.
操作5 删除集合中元素2,当前集合为:{2,3}.
操作6 询问集合中的最小异或对,当前选取两个元素的合法方案有 (2,3),所以最小异或对的值为2⊕3=1.