题库练习 Vasiliy's Multiset
← 上一题 下一题 →

A10505 | Vasiliy's Multiset

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Author has gone out of the stories about Vasiliy, so here is just a formal task description.

You are given $q$ queries and a multiset $A$ , initially containing only integer $0$ . There are three types of queries:

1. "+ x" — add integer $x$ to multiset $A$ .
2. "- x" — erase one occurrence of integer $x$ from multiset $A$ . It's guaranteed that at least one $x$ is present in the multiset $A$ before this query.
3. "? x" — you are given integer $x$ and need to compute the value ![](/uploads/acgo/image/383b83828c8066ed_aac4b43fd70d.jpeg), i.e. the maximum value of bitwise exclusive OR (also know as XOR) of integer $x$ and some integer $y$ from the multiset $A$ .

Multiset is a set, where equal elements are allowed.

输入格式

The first line of the input contains a single integer $q$ ( $1<=q<=200000$ ) — the number of queries Vasiliy has to perform.

Each of the following $q$ lines of the input contains one of three characters '+', '-' or '?' and an integer $x_{i}$ ( $1<=x_{i}<=10^{9}$ ). It's guaranteed that there is at least one query of the third type.

Note, that the integer $0$ will always be present in the set $A$ .

输出格式

For each query of the type '?' print one integer — the maximum value of bitwise exclusive OR (XOR) of integer $x_{i}$ and some integer from the multiset $A$ .

输入输出样例

输入 #1
10
+ 8
+ 9
+ 11
+ 6
+ 1
? 3
- 8
? 3
? 8
? 11
输出 #1
11
10
14
13
C++ 编辑器
输入
输出