已结束 GESP挑战赛#8

A3120 | 宏量运算

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

题目描述

时间限制:2000ms

内存限制:256MB


给定一个变量 $X$ 和 $N$ 个改变 $X$ 值的操作。
操作 $i$ 使用一对整数 $(T_i,A_i)$ 表示,并执行以下操作:

- 如果 $T_i=1$,将 $X$ 的值更改为 $X\ {\rm and}\ A_i$;
- 如果 $T_i=2$,将 $X$ 的值更改为 $X\ {\rm or}\ A_i$;
- 如果 $T_i=3$,将 $X$ 的值更改为 $X\ {\rm xor}\ A_i$。

将 $X$ 的值初始化为 $C$,并按以下顺序执行程序:

- 执行操作 $1$,然后输出 $X$ 的结果值。
- 接下来,按顺序执行操作 $1, 2$,然后输出 $X$ 的值。
- 接下来,按顺序执行操作 $1, 2, 3$,然后输出 $X$ 的值。
- $\vdots$
- 接下来,按顺序执行操作 $1, 2, \ldots, N$,然后输出 $X$ 的值。

什么是 ${\rm and},\ {\rm or},\ {\rm xor}$ ?

>对于非负整数 $A$ 和 $B$ 的 ${\rm and},\ {\rm or},\ {\rm xor}$ 运算定义如下:

>- 当 $A\ {\rm and}\ B$ 用二进制表示时,如果 $A$ 和 $B$ 在 $2^k$ 位($k \geq 0$)的数字都是 $1$,则 $2^k$ 位的数字为 $1$,否则为 $0$。

- 当 $A\ {\rm or}\ B$ 用二进制表示时,如果 $A$ 和 $B$ 在 $2^k$ 位($k \geq 0$)至少有一个数字为 $1$,则 $2^k$ 位的数字为 $1$,否则为 $0$。

- 当 $A\ {\rm xor}\ B$ 用二进制表示时,如果 $A$ 和 $B$ 在 $2^k$ 位($k \geq 0$)恰有一个数字为 $1$,则 $2^k$ 位的数字为 $1$,否则为 $0$。

>例如,$3\ {\rm and}\ 5 = 1$,$3\ {\rm or}\ 5 = 7$,$3\ {\rm xor}\ 5 = 6$。


$\large{数据范围}$

- $1 \leq N \leq 2\times 10^5$
- $1\leq T_i \leq 3$
- $0\leq A_i \lt 2^{30}$
- $0\leq C \lt 2^{30}$
- 所有输入数值均为整数。

输入格式

对于每个测试文件格式为:

$\tt{N\ C}$

$\tt{T_1\ A_1}$
$\tt{T_2\ A_2}$
$\tt{\vdots}$
$\tt{T_N\ A_N}$

输出格式

按照题目描述输出 $N$ 行,每行对应一个操作后的结果。

输入输出样例

输入 #1
3 10
3 3
2 5
1 12
输出 #1
9
15
12
输入 #2
9 12
1 1
2 2
3 3
1 4
2 5
3 6
1 7
2 8
3 9
输出 #2
0
2
1
0
5
3
3
11
2
C++ 编辑器
输入
输出