题目描述
変数 X と、X の値を変更する N 種類の操作があります。操作 i は整数の組 (Ti,Ai) で表され、意味は次の通りです。
- Ti=1 のとき、X の値を X and Ai に置き換える。
- Ti=2 のとき、X の値を X or Ai に置き換える。
- Ti=3 のとき、X の値を X xor Ai に置き換える。
変数 X を値 C で初期化した状態から、以下の処理を順に実行してください。
- 操作 1 を行い、操作後の X の値を出力する。
- 続けて、操作 1,2 を順に行い、操作後の X の値を出力する。
- 続けて、操作 1,2,3 を順に行い、操作後の X の値を出力する。
- ⋮
- 続けて、操作 1,2,…,N を順に行い、操作後の X の値を出力する。
and, or, xor とは 非負整数 A, B の and, or, xor は、以下のように定義されます。 - A and B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち両方が 1 であれば 1、そうでなければ 0 である。
- A or B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち少なくとも一方が 1 であれば 1、そうでなければ 0 である。
- A xor B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうちちょうど一方が 1 であれば 1、そうでなければ 0 である。
例えば、3 and 5 = 1、 3 or 5 = 7、 3 xor 5 = 6 となります。
输入格式
入力は以下の形式で標準入力から与えられる。
N C T1 A1 T2 A2 ⋮ TN AN
输出格式
問題文中の指示に従って N 行出力せよ。
题目大意
我们有一个正整数 X ,当然还有 N 条位运算操作,按照 Ti Ai 输入,其中
-
Ti=1 表示该操作为 and;
-
Ti=2 表示该操作为 or;
-
Ti=3 表示该操作为 xor。
第 i 条操作把当前的 X 执行 1,2,⋯,i 共 i 条操作。 执行完成后输出 X 的值。
3 10
3 3
2 5
1 12
9
15
12
9 12
1 1
2 2
3 3
1 4
2 5
3 6
1 7
2 8
3 9
0
2
1
0
5
3
3
11
2
提示
制約
- 1 ≤ N ≤ 2× 105
- 1≤ Ti ≤ 3
- 0≤ Ai < 230
- 0≤ C < 230
- 入力に含まれる値は全て整数である
Sample Explanation 1
最初、X の値は 10 です。 - 操作 1 を行うと X の値は 9 になります。 - 続けて操作 1 を行うと X の値は 10 になり、さらに操作 2 を行うと 15 になります。 - 続けて操作 1 を行うと X の値は 12 になり、さらに操作 2 を行うと 13 に、さらに続けて操作 3 を行うと 12 になります。