#P2164. 2024.10.10-XC-第4题-塔塔数组

2024.10.10-XC-第4题-塔塔数组

题目内容

塔塔拿到了一个长度为nn的数组aa,下标从11开始,qq次询问(op,l,rop,l,r)。

op=1op=1, 计算ala_l & al+1a_l+1 | al+2a_l+2 & al+3a_l+3 | al+4...ara_l+4...a_r, 的值。以&开始,交替 &|。

op=2op=2,计算alal+1a_l | a_l+1 & al+2a_l+2|a1+3a_1+3&a1+4...ara_1+4...a_r, 的值。以|开始,交替|&。

例如:询问 (1,3,91,3,9),计算a3a_3&a4a_4|a5a_5&a6a_6|a7a_7&a8a_8|a9a_9。询问(2,3,92,3,9),计算a3a_3|a4a_4&a5a_5|a6a_6&a7a_7|a8a_8&a9a_9

本题的&和|不区分优先级,从左往右计算。

aba|b表示aa按位或bb(按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的两个二进位有一个为1时,结果位就为1)。

aa&bb表示aa按位与bb(按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的两个二进位两个都为11时,结果位就为11)。

输入描述

第一行包含两个整数n qn\ q(1n,q2×1051≤n,q≤2×10^5),表示数组大小和询问个数。

第二行包含nn个整数aia_i(0ai<2300≤a_i<2^{30}),表示数组aa

接下来qq行,每行包含三个整数op l rop\ l\ r(1op2,1lrn1≤op≤2,1≤l≤r≤n),表示询问。

输出描述

输出包含qq行,每行包含一个整数,分别表示每次询问结果。

样例1

输入

5 2
1 2 3 4 5
1 2 3
2 2 4

输出

2
0

说明

op=1,l=2,r=3op=1,l=2,r=3对应22&33,答案为22op=2,l=2,r=4op=2,l=2,r=4对应232|3&44,答案为00