时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
在

的记忆中,存在着大量彼此矛盾的片段——某些发生在雪原,某些在城市,有的甚至不属于已知的任何地理坐标。

的记忆可以被量化为一列整数序列

。
每个整数代表一个“记忆节点”的能量波动。不同的区间
![[\ell, r]](https://www.nowcoder.com/equation?tex=%5B%5Cell%2C%20r%5D)
,对应着不同阶段的情绪与记忆片段。当

集中注意力时,会将这些片段重组,形成无数种可能的“记忆组合”。
每一个记忆组合都能产生特定的“共鸣值”,某种隐藏的极值模式存在于这些记忆片段之间,我们需要找到这种极值模式。
为了研究这种极值模式,我们将数据形式化为以下模型:
设整数序列(或多重集合)

对任意下标区间
)
,定义区间多重集合
由

的所有非空子集(这里子集按多重集合定义,即对每个元素可取或不取)产生的
子集和集合记为:
(注意:若

含重复元素,则不同的选择可能产生相同的和,

作为集合只保留不同的和。)
对任意集合

定义:
1.

运算:
2.

运算:
给定

次查询,每次查询给出一个区间
![[\ell, r]](https://www.nowcoder.com/equation?tex=%5B%5Cell%2C%20r%5D)
,每次查询的答案为:
其中 “

” 表示按位异或运算。
【名词解释】
1.

:整数数组的

定义为
没有出现在数组中的最小非负整数。例如:
2.

:即最大公因数,指
多个整数共有因数中最大的一个。例如,

、

和

的公因数有

, 其中最大的因数是

,因此
%20%3D%206.)
注意:
特别地,定义 %3D0%20.)
3.

代表按位异或。对两个整数的二进制表示按位进行异或运算,只有
两个对应位不同时才为 1。例如:
_2%5Coplus(110)_2%20%3D%20(011)_2%3D%203)
输入描述:
第一行,输入一个正整数
,代表整数序列的长度。
第二行,输入
个整数 
,表示整数序列。
第三行,输入一个正整数
,代表一共有
次查询。
接下来
行,每行两个正整数
,查询区间
的 “极值模式”(详细查询内容见题面)。
输出描述:
输出共
行,每行输出一个整数,代表每次查询的结果。
示例2
输入
复制
3
0 2 4
4
1 3
1 1
2 2
3 3