2492. 生肖房间的机关控制
1000ms
256MB
简单
位运算
题目描述
齐夏面前有一排共 32 个神秘机关,这些机关的状态可以用一个 32 位整数 $N$ 的二进制位来表示(最低位为第 0 位,最高位为第 31 位)。1 代表机关开启,0 代表机关关闭。
生肖“地虎”给出了 $M$ 个指令,每个指令包含一个操作类型 $op$ 和一个位置 $i$:
1. **指令 1 (查询)**:询问第 $i$ 位机关的状态。若开启输出 `1`,若关闭输出 `0`。
2. **指令 2 (强制开启)**:将第 $i$ 位机关设为开启状态(无论之前是什么状态)。
3. **指令 3 (强制关闭)**:将第 $i$ 位机关设为关闭状态(无论之前是什么状态)。
4. **指令 4 (状态翻转)**:将第 $i$ 位机关的状态取反(0 变 1,1 变 0)。
请你帮齐夏计算出经过这 $M$ 个指令后,最终机关代表的整数 $N$ 是多少?
输入格式
- 第一行包含两个整数,初始整数 $N$ 和指令数 $M$。
- 接下来 $M$ 行,每行包含两个整数 $op$ 和 $i$ ($0 \le i \le 31$)。
输出格式
- 对于每个 $op=1$ 的指令,输出一行结果(0 或 1)。
- 最后输出一行,表示所有指令执行完毕后,最终的整数 $N$。
样例 1
输入 (Input)
输出 (Output)
样例说明
- 初始 $N=5$ (二进制 `...0101`)。
- 指令 `1 0`:查询第 0 位,结果为 1。
- 指令 `2 1`:开启第 1 位,$N$ 变为 `...0111` (7)。
- 指令 `3 2`:关闭第 2 位,$N$ 变为 `...0011` (3)。
- 指令 `4 3`:翻转第 3 位,$N$ 变为 `...1011` (11)。
- 最终输出 11。
- $0 \le N < 2^{32}$
- $1 \le M \le 10^5$
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功