310739: CF1878E. Iva & Pav

Memory Limit:256 MB Time Limit:5 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

E. Iva & Pavtime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

Iva and Pav are a famous Serbian competitive programming couple. In Serbia, they call Pav "papuca" and that's why he will make all of Iva's wishes come true.

Iva gave Pav an array $a$ of $n$ elements.

Let's define $f(l, r) = a_l \ \& \ a_{l+1} \ \& \dots \& \ a_r$ (here $\&$ denotes the bitwise AND operation).

Note that $f(l, r)$ is not defined when $l>r$.

Iva also gave Pav $q$ queries.

Each query consists of 2 numbers, $k$ and $l$, and she wants Pav to find the largest index $r$ ($l \le r \le n$), such that $f(l, r) \ge k$.

Pav wants to solve this problem fast because he doesn't want to upset Iva. He needs your help.

Input

The first line contains a single integer $t$ ($1 \le t \le 10^4$) — the number of test cases.

The first line of each test case contains a single integer $n$ ($1 \le n \le 2 \cdot 10^5$) — the length of array $a$.

The second line of each test case contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$) — the elements of array $a$.

The third line of each test case contains a single integer $q$ ($1 \le q \le 10^5$) — the number of queries Iva gave Pav.

The next $q$ lines of each test case contains two numbers, $l$ and $k$ ($1 \le l \le n$, $1 \le k \le 10^9$) — the left bound for the subsegment, and the integer $k$ described in statement.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$. Also, it is guaranteed that the sum of $q$ over all test cases does not exceed $2 \cdot 10^5$.

Output

For each query output maximal index $r$ ($l \le r \le n$) such that $a_l \ \& \ a_{l+1} \ \& \dots \& \ a_r \ \ge \ k$.

If such $r$ doesn't exist, output $-1$.

ExampleInput
3
5
15 14 17 42 34
3
1 7
2 15
4 5
5
7 5 3 1 7
4
1 7
5 7
2 3
2 2
7
19 20 15 12 21 7 11
4
1 15
4 4
7 12
5 7
Output
2 -1 5 
1 5 2 2 
2 6 -1 5 
Note

In the first test case $n=5$, and the array $a = [15, 14, 17, 42, 34]$

The first query asks for the biggest index $r$ such that the $f(1, r) \ge 7$.

$f(1,1) = 15, \ f(1, 2) = 14, \ f(1,3)=0 \ f(1, 4)=0 \ f(1, 5)=0$, so $r=2$ is the answer.

The second query asks for $f(2, r) \ge 15$. Since such $r$ doesn't exist, the answer is $-1$.

The third query asks for $f(4, r) \ge 5$. $f(4, 4) = 42, \ f(4, 5) = 34$, so $r=5$ is the answer.

In the second test case $n=5$, and the array $a= [7, 5, 3, 1, 7]$.

For the first query, $f(1, r) \ge 7$.

$f(1, 1)=7, \ f(1, 2)=5, \ f(1, 3) = 1, \ f(1,4) = 1, \ f(1, 5)=1$, so the answer to this query is $1$.

For the second query, $f(5, r) \ge 7$.

$f(5, 5) = 7$, so the answer is $5$.

For the third query, $f(2, r) \ge 3$.

$f(2, 2) = 5, \ f(2, 3) = 1, \ f(2, 4) = 1, \ f(2, 5) = 1$, so the answer is $2$.

Output

题目大意:
伊娃和帕夫是一对著名的塞尔维亚竞技编程情侣。在塞尔维亚,他们称帕夫为“papuca”,因此他将实现伊娃的所有愿望。伊娃给了帕夫一个包含n个元素的数组a。定义函数f(l, r) = a_l & a_{l+1} & ... & a_r(其中&表示按位与操作)。注意,当l>r时,f(l, r)未定义。伊娃还给了帕夫q个查询。每个查询包含2个数字,k和l,她希望帕夫找到最大的索引r(l≤r≤n),使得f(l, r)≥k。帕夫想要快速解决这个问题,因为他不想让伊娃不高兴。他需要你的帮助。

输入数据格式:
第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。
每个测试用例的第一行包含一个整数n(1≤n≤2×10^5)——数组a的长度。
每个测试用例的第二行包含n个整数a_1, a_2, ..., a_n(1≤a_i≤10^9)——数组a的元素。
每个测试用例的第三行包含一个整数q(1≤q≤10^5)——伊娃给帕夫的查询数量。
接下来每个测试用例的q行包含两个数字,l和k(1≤l≤n,1≤k≤10^9)——子段的左边界和题目描述中的整数k。
保证所有测试用例的n之和不超过2×10^5。同样,保证所有测试用例的q之和不超过2×10^5。

输出数据格式:
对于每个查询,输出最大的索引r(l≤r≤n),使得a_l & a_{l+1} & ... & a_r ≥ k。
如果这样的r不存在,输出-1。题目大意: 伊娃和帕夫是一对著名的塞尔维亚竞技编程情侣。在塞尔维亚,他们称帕夫为“papuca”,因此他将实现伊娃的所有愿望。伊娃给了帕夫一个包含n个元素的数组a。定义函数f(l, r) = a_l & a_{l+1} & ... & a_r(其中&表示按位与操作)。注意,当l>r时,f(l, r)未定义。伊娃还给了帕夫q个查询。每个查询包含2个数字,k和l,她希望帕夫找到最大的索引r(l≤r≤n),使得f(l, r)≥k。帕夫想要快速解决这个问题,因为他不想让伊娃不高兴。他需要你的帮助。 输入数据格式: 第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。 每个测试用例的第一行包含一个整数n(1≤n≤2×10^5)——数组a的长度。 每个测试用例的第二行包含n个整数a_1, a_2, ..., a_n(1≤a_i≤10^9)——数组a的元素。 每个测试用例的第三行包含一个整数q(1≤q≤10^5)——伊娃给帕夫的查询数量。 接下来每个测试用例的q行包含两个数字,l和k(1≤l≤n,1≤k≤10^9)——子段的左边界和题目描述中的整数k。 保证所有测试用例的n之和不超过2×10^5。同样,保证所有测试用例的q之和不超过2×10^5。 输出数据格式: 对于每个查询,输出最大的索引r(l≤r≤n),使得a_l & a_{l+1} & ... & a_r ≥ k。 如果这样的r不存在,输出-1。

加入题单

上一题 下一题 算法标签: