← Home
write a go solution for Description:
You are given an array a of n non-negative integers, numbered from 1 to n.

Let's define the cost of the array a as displaystylemin_ineqja_i|a_j, where | denotes the bitwise OR operation.

There are q queries. For each query you are given two integers l and r (l<r). For each query you should find the cost of the subarray a_l,a_l+1,ldots,a_r.

Input Format:
Each test case consists of several test cases. The first line contains a single integer t (1<=t<=10^4) — the number of test cases.

The first line of each test case contains an integer n (2<=n<=10^5) — the length array a.

The second line of each test case contains n integers a_1,a_2,ldots,a_n (0<=a_i<2^30) — the elements of a.

The third line of each test case contains an integer q (1<=q<=10^5) — the number of queries.

Each of the next q lines contains two integers l_j, r_j (1<=l_j<r_j<=n) — the description of the j-th query.

It is guaranteed that the sum of n and the sum of q over all test cases do not exceed 10^5.

Output Format:
For each test case print q numbers, where the j-th number is the cost of array a_l_j,a_l_j+1,ldots,a_r_j.

Note:
In the first test case the array a is

110_2,001_2,011_2,010_2,001_2.

That's why the answers for the queries are:

- [1;2]: a_1|a_2=110_2|001_2=111_2=7;
- [2;3]: a_2|a_3=001_2|011_2=011_2=3;
- [2;4]: a_2|a_3=a_3|a_4=a_2|a_4=011_2=3;
- [2;5]: a_2|a_5=001_2=1.

In the second test case the array a is

00_2,10_2,01_2,underbrace11ldots1_2_30 (a_4=2^30-1).

That's why the answers for the queries are:

- [1;2]: a_1|a_2=10_2=2;
- [2;3]: a_2|a_3=11_2=3;
- [1;3]: a_1|a_3=01_2=1;
- [3;4]: a_3|a_4=01_2|underbrace11ldots1_2_30=2^30-1=1073741823.. Output only the code with no comments, explanation, or additional text.