#1398. 与或和的异或

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: MCPlayer542

题目描述

给定一个长为 nn 的正整数序列 a1a_1 ,a2a_2 , ...... , ana_n

要求你实现如下操作:

给定两个数 l,r (1lrn)l,r \ (1 \leq l \leq r \leq n),要求你计算 (al&al+1&...&ar)(alal+1...ar)(a_l \& a_{l+1} \& ... \& a_r) \bigoplus (a_l|a_{l+1}|...|a_r)

其中 &,,\& ,|, \bigoplus 分别是按位与、按位或和按位异或运算。

输入格式

第一行输入两个数 n (1n105),m (1m106)n \ (1 \leq n \leq 10^5),m \ (1 \leq m \leq 10^6),表示序列长度和操作数。

第二行,nn 个数 a1,a2,...an (0ai109)a_1,a_2,...a_n \ (0 \leq a_i \leq 10^9),表示正整数序列。

接下来 mm 行,每行 22 个数 l,r (1lrn)l,r \ (1 \leq l \leq r \leq n),含义见题目描述。

输出格式

mm 行,每行一个数,表示对应操作的答案。

样例

样例输入

6 5
1 1 4 5 1 4
1 3
1 4
3 5
3 4
4 6

样例输出

5
5
5
1
5

数据范围与提示

输入输出规模较大,建议使用快速输入输出。