#abc308g. [abc308_g]Minimum Xor Pair Query
[abc308_g]Minimum Xor Pair Query
問題文
整数を書くことができる黒板があります。はじめ黒板には整数は何も書かれていません。クエリが 個与えられるので順に処理してください。
クエリは以下の 種類です。
-
1 x
: 黒板に を一つ書き込む。 -
2 x
: 黒板に書かれた を一つ消去する。このクエリが与えられるとき、黒板に が一つ以上書かれていることが保証される。 -
3
: 黒板に書かれた二つの整数のビット単位 XOR としてあり得る最小値を出力する。このクエリを処理する際、黒板に整数が二つ以上書かれていることが保証される。
ビット単位 XOR とは 非負整数 のビット単位 XOR 、 は、以下のように定義されます。
- を二進表記した際の () の位の数は、 を二進表記した際の の位の数のうち一方のみが であれば 、そうでなければ である。
例えば、 となります (二進表記すると: )。
制約
- クエリ が与えられるとき、黒板に が一つ以上書かれている
- クエリ が与えられるとき、黒板に整数が二つ以上書かれている
- 入力される数値は全て整数
入力
入力は以下の形式で標準入力から与えられる。
番目のクエリ では、まずクエリの種類 ( のいずれか)が与えられる。 の場合はさらに整数 が追加で与えられる。
すなわち、各クエリは以下に示す つの形式のいずれかである。
出力
を満たすクエリの回数を として 行出力せよ。
行目では 番目のそのようなクエリに対する答えを出力せよ。
入力例 1
9
1 2
1 10
3
1 3
3
2 2
3
1 10
3
出力例 1
8
1
9
0
番目のクエリ処理後、黒板には が一つ書かれています。
番目のクエリ処理後、黒板には が一つずつ書かれています。
番目のクエリ処理時、黒板に書かれた二つの数のビット単位 XOR として考えられる最小値は です。
番目のクエリ処理後、黒板には が一つずつ書かれています。
番目のクエリ処理時、黒板に書かれた二つの数のビット単位 XOR として考えられる最小値は です。
番目のクエリ処理後、黒板には が一つずつ書かれています。
番目のクエリ処理時、黒板に書かれた二つの数のビット単位 XOR として考えられる最小値は です。
番目のクエリ処理後、黒板には が一つ、 が二つ書かれています。
番目のクエリ処理時、黒板に書かれた二つの数のビット単位 XOR として考えられる最小値は です。