单点时限: 2.0 sec
内存限制: 256 MB
“下面我临时组成了示范班,为大家示范齐步走”
“全体立正”
“报数”
“一”,“二”,“三”,“四”,“五”,”七“——
正在列队的同学们,忍俊不禁。
于是, Cuber QQ 被委托为教官们提升数学能力。
Cuber QQ 觉得他辅导基础数学无法体现他的能力,所以他辅导教官们学习位运算。
位运算中有三种最基础的位运算:
按位与 and : 相同位的两个数字都为 $1$ ,则为 $1$ ;若有一个不为 $1$ ,则为 $0$ ;
按位或 or : 相同位只要一个为 $1$ 即为 $1$ ;
按位异或 xor : 相同位不同则为 $1$ ,相同则为 $0$ 。
为了考察教学成果, Cuber QQ 决定和教官们玩一个游戏。
教官们需要维护一个初始为空集的正整数集合 $S$ (不允许有重复的元素), Cuber QQ 会给出一些操作,操作一定是以下两种中的其中一个:
add x
,插入给定的 $x$ , 若集合中已有 $x$ 存在 , 则不进行任何操作;query
,查询 $a_i\; and\; a_j\; and\; a_k$ 的最大值, 其中 $a_i,a_j,a_k\in S, a_i \not= a_j, a_i \not= a_k, a_j \not= a_k$ 教官们需要针对每一个 query
给出答案。
第一行给出正整数 $n$ ( $1\le n\le 10^6$ ), 表示操作的次数。
接下来 $n$ 行, 每行给出第 $i$ 次操作,操作的输入格式一定是以下两个中的其中一种:
add y
query
输入采用强制在线,每一个操作的 $x=y \; xor\; LastAns$ ( $1\le x_i\le 10^6$ ) ,其中 $LastAns$ 为上一次查询的答案, 初始 $LastAns=0$ 。
数据保证对于所有 query
发生的时候, 集合大小至少为 $3$ 。
对每一个查询, 输出一行一个整数,表示答案。
4 add 1 add 2 add 3 query
0
10 add 1 add 2 add 3 query add 7 query add 5 query add 9 query
0 2 2 3