#P1665E. MinimizOR

    ID: 1235 Type: RemoteJudge 3000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 9 Uploaded By: Tags>bitmasksbrute forcedata structuresdivide and conquergreedyimplementationtwo pointers*2500

MinimizOR

Description

You are given an array aa of nn non-negative integers, numbered from 11 to nn.

Let's define the cost of the array aa as minijaiaj\displaystyle \min_{i \neq j} a_i | a_j, where | denotes the bitwise OR operation.

There are qq queries. For each query you are given two integers ll and rr (l<rl < r). For each query you should find the cost of the subarray al,al+1,,ara_{l}, a_{l + 1}, \ldots, a_{r}.

Each test case consists of several test cases. The first line contains a single integer tt (1t1041 \le t \le 10^4) — the number of test cases.

The first line of each test case contains an integer nn (2n1052 \le n \le 10^5) — the length array aa.

The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n (0ai<2300 \le a_i < 2^{30}) — the elements of aa.

The third line of each test case contains an integer qq (1q1051 \le q \le 10^5) — the number of queries.

Each of the next qq lines contains two integers ljl_j, rjr_j (1lj<rjn1 \le l_j < r_j \le n) — the description of the jj-th query.

It is guaranteed that the sum of nn and the sum of qq over all test cases do not exceed 10510^5.

For each test case print qq numbers, where the jj-th number is the cost of array alj,alj+1,,arja_{l_j}, a_{l_j + 1}, \ldots, a_{r_j}.

Input

Each test case consists of several test cases. The first line contains a single integer tt (1t1041 \le t \le 10^4) — the number of test cases.

The first line of each test case contains an integer nn (2n1052 \le n \le 10^5) — the length array aa.

The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n (0ai<2300 \le a_i < 2^{30}) — the elements of aa.

The third line of each test case contains an integer qq (1q1051 \le q \le 10^5) — the number of queries.

Each of the next qq lines contains two integers ljl_j, rjr_j (1lj<rjn1 \le l_j < r_j \le n) — the description of the jj-th query.

It is guaranteed that the sum of nn and the sum of qq over all test cases do not exceed 10510^5.

Output

For each test case print qq numbers, where the jj-th number is the cost of array alj,alj+1,,arja_{l_j}, a_{l_j + 1}, \ldots, a_{r_j}.

Sample Input 1

2
5
6 1 3 2 1
4
1 2
2 3
2 4
2 5
4
0 2 1 1073741823
4
1 2
2 3
1 3
3 4

Sample Output 1

7
3
3
1
2
3
1
1073741823

Note

In the first test case the array aa is

1102,0012,0112,0102,0012110_2, 001_2, 011_2, 010_2, 001_2.

That's why the answers for the queries are:

  • [1;2][1; 2]: a1a2=11020012=1112=7a_1 | a_2 = 110_2 | 001_2 = 111_2 = 7;
  • [2;3][2; 3]: a2a3=00120112=0112=3a_2 | a_3 = 001_2 | 011_2 = 011_2 = 3;
  • [2;4][2; 4]: a2a3=a3a4=a2a4=0112=3a_2 | a_3 = a_3 | a_4 = a_2 | a_4 = 011_2 = 3;
  • [2;5][2; 5]: a2a5=0012=1a_2 | a_5 = 001_2 = 1.

In the second test case the array aa is

002,102,012,11123000_2, 10_2, 01_2, \underbrace{11\ldots 1_2}_{30} (a4=2301a_4 = 2^{30} - 1).

That's why the answers for the queries are:

  • [1;2][1; 2]: a1a2=102=2a_1 | a_2 = 10_2 = 2;
  • [2;3][2; 3]: a2a3=112=3a_2 | a_3 = 11_2 = 3;
  • [1;3][1; 3]: a1a3=012=1a_1 | a_3 = 01_2 = 1;
  • [3;4][3; 4]: a3a4=012111230=2301=1073741823a_3 | a_4 = 01_2 | \underbrace{11\ldots 1_2}_{30} = 2^{30} - 1 = 1073741823.