题库练习 Ivan and Burgers
← 上一题 下一题 →

A12312 | Ivan and Burgers

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Ivan loves burgers and spending money. There are $n$ burger joints on the street where Ivan lives. Ivan has $q$ friends, and the $i$ -th friend suggested to meet at the joint $l_i$ and walk to the joint $r_i$ $(l_i \leq r_i)$ . While strolling with the $i$ -th friend Ivan can visit all joints $x$ which satisfy $l_i \leq x \leq r_i$ .

For each joint Ivan knows the cost of the most expensive burger in it, it costs $c_i$ burles. Ivan wants to visit some subset of joints on his way, in each of them he will buy the most expensive burger and spend the most money. But there is a small issue: his card broke and instead of charging him for purchases, the amount of money on it changes as follows.

If Ivan had $d$ burles before the purchase and he spent $c$ burles at the joint, then after the purchase he would have $d \oplus c$ burles, where $\oplus$ denotes the [bitwise XOR operation](https://en.wikipedia.org/wiki/Bitwise_operation#XOR).

Currently Ivan has $2^{2^{100}} - 1$ burles and he wants to go out for a walk. Help him to determine the maximal amount of burles he can spend if he goes for a walk with the friend $i$ . The amount of burles he spends is defined as the difference between the initial amount on his account and the final account.

输入格式

The first line contains one integer $n$ ( $1 \leq n \leq 500\,000$ ) — the number of burger shops.

The next line contains $n$ integers $c_1, c_2, \ldots, c_n$ ( $0 \leq c_i \leq 10^6$ ), where $c_i$ — the cost of the most expensive burger in the burger joint $i$ .

The third line contains one integer $q$ ( $1 \leq q \leq 500\,000$ ) — the number of Ivan's friends.

Each of the next $q$ lines contain two integers $l_i$ and $r_i$ ( $1 \leq l_i \leq r_i \leq n$ ) — pairs of numbers of burger shops between which Ivan will walk.

输出格式

Output $q$ lines, $i$ -th of which containing the maximum amount of money Ivan can spend with the friend $i$ .

输入输出样例

输入 #1
4
7 2 3 4
3
1 4
2 3
1 3
输出 #1
7
3
7
输入 #2
5
12 14 23 13 7
15
1 1
1 2
1 3
1 4
1 5
2 2
2 3
2 4
2 5
3 3
3 4
3 5
4 4
4 5
5 5
输出 #2
12
14
27
27
31
14
25
26
30
23
26
29
13
13
7
C++ 编辑器
输入
输出