题目描述
小Y学过异或后觉得这太简单了,但小H认为小Y太天真了,决定考验一下他,出了一道题:
给出一个数组a,长度为n,分别为a1, a2,a3….an-1, an。以及q次访问,每次给出两个整数l,r表示区间的左右端点。
对于每次访问,给出一个整数x(x <231)使得 $sum_(i=1)^r$ (x ⊕ ai)最大
给出一个数组a,长度为n,分别为a1, a2,a3….an-1, an。以及q次访问,每次给出两个整数l,r表示区间的左右端点。
对于每次访问,给出一个整数x(x <231)使得 $sum_(i=1)^r$ (x ⊕ ai)最大
输入
第一行一个整数N(1≤N≤ 1e5),表示序列的长度
第二行N个整数,表示序列内的元素(1≤ai<231)
第三行一个整数q,表示询问的个数(1≤q≤1e5)
接下来q行,每行两个整数L,R,
表示询问的区间保证L≤R
第二行N个整数,表示序列内的元素(1≤ai<231)
第三行一个整数q,表示询问的个数(1≤q≤1e5)
接下来q行,每行两个整数L,R,
表示询问的区间保证L≤R
输出
对于每次访问输出一个对应的c,若有多个解则输出最小的解
样例输入 Copy
5
1 2 3 4 5
3
1 2
2 4
3 5
样例输出 Copy
2147483644
2147483645
2147483642
提示
第一个样例中,
第一次访问区间[1,2]
区间内的值为1,2
当x取2147483644即1111111111111111111111111111100 (31位二进制)时
x^1+x^2的值最大
第一次访问区间[1,2]
区间内的值为1,2
当x取2147483644即1111111111111111111111111111100 (31位二进制)时
x^1+x^2的值最大