CF706D.Vasiliy's Multiset

普及+/提高

通过率:0%

时间限制:4.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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 , 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.

作者已经不再讲述关于瓦西里(Vasiliy)的故事了,因此这里仅给出一个形式化的题目描述。

你将收到 qq 个查询,以及一个多重集 AA,初始时该多重集中仅包含整数 00。共有三种类型的查询:

  1. + x — 将整数 xx 加入多重集 AA;
  2. - x — 从多重集 AA 中删除一个 xx 的出现。保证在执行该查询前,多重集 AA 中至少存在一个 xx;
  3. ? x — 给定整数 xx,你需要计算值 ,即整数 xx 与多重集 AA 中某个整数 yy 进行按位异或(XOR)运算所能得到的最大值。

多重集是一种允许存在相等元素的集合。

输入格式

The first line of the input contains a single integer q (1 ≤ q ≤ 200 000) — 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 ≤ 109). 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.

输入的第一行包含一个整数 qq(1≤q≤200 0001 \le q \le 200\,000),表示瓦西里需要执行的查询次数。

接下来的 qq 行,每行包含一个字符 '+'、'-' 或 '?',以及一个整数 xix_i(1≤xi≤1091 \le x_i \le 10^9)。保证至少存在一个类型为第三种(即 '?')的查询。

注意:整数 00 始终存在于集合 AA 中。

输出格式

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.

对于每个类型为 ? 的查询,输出一个整数——即整数 xix_i 与多重集 AA 中某个整数进行按位异或(XOR)运算所能得到的最大值。

输入输出样例

  • 输入#1

    10
    + 8
    + 9
    + 11
    + 6
    + 1
    ? 3
    - 8
    ? 3
    ? 8
    ? 11

    输出#1

    11
    10
    14
    13

说明/提示

After first five operations multiset A contains integers 0, 8, 9, 11, 6 and 1.

The answer for the sixth query is integer — maximum among integers , , , and .

前五次操作后,多重集 AA 包含整数 0,8,9,11,60, 8, 9, 11, 6 和 11。

第六个查询的答案为整数 —— 即在整数 、、、 和 中的最大值。

输入解题思路,AI测评打分。不知道怎么写?

首页