CF1878E.Iva & Pav

传统题 时间 5000 ms 内存 256 MiB 10 尝试 1 已通过 1 标签

Iva & Pav

CF1878E · Iva & Pav

  • 难度:1400
  • 标签:binary search、bitmasks、data structures、greedy
  • 链接:https://codeforces.com/problemset/problem/1878/E
  • 时间限制:5 seconds 内存限制:256 megabytes
  • 出现位置:Day22-阶段模拟4-S T1-T3综合卷

英文原题面

Statement

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 aa of nn elements. Let's define f(l,r)=al & al+1 && arf(l, r) = a_l \ \& \ a_{l+1} \ \& \dots \& \ a_r (here &\& denotes the bitwise AND operation). Note that f(l,r)f(l, r) is not defined when l>rl \gt r. Iva also gave Pav qq queries. Each query consists of 2 numbers, kk and ll, and she wants Pav to find the largest index rr (lrnl \le r \le n), such that f(l,r)kf(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 tt (1t1041 \le t \le 10^4) — the number of test cases. The first line of each test case contains a single integer nn (1n21051 \le n \le 2 \cdot 10^5) — the length of array aa. The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (1ai1091 \le a_i \le 10^9) — the elements of array aa. The third line of each test case contains a single integer qq (1q1051 \le q \le 10^5) — the number of queries Iva gave Pav. The next qq lines of each test case contains two numbers, ll and kk (1ln1 \le l \le n, 1k1091 \le k \le 10^9) — the left bound for the subsegment, and the integer kk described in statement. It is guaranteed that the sum of nn over all test cases does not exceed 21052 \cdot 10^5. Also, it is guaranteed that the sum of qq over all test cases does not exceed 21052 \cdot 10^5.

Output

For each query output maximal index rr (lrnl \le r \le n) such that al & al+1 && ar  ka_l \ \& \ a_{l+1} \ \& \dots \& \ a_r \ \ge \ k. If such rr doesn't exist, output 1-1.

样例

样例 1

输入:

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

输出:

2 -1 5 
1 5 2 2 
2 6 -1 5 

样例解释(英文原文)

In the first test case n=5n=5, and the array a=[15,14,17,42,34]a = [15, 14, 17, 42, 34] The first query asks for the biggest index rr such that the f(1,r)7f(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=2r=2 is the answer. The second query asks for f(2,r)15f(2, r) \ge 15. Since such rr doesn't exist, the answer is 1-1. The third query asks for f(4,r)5f(4, r) \ge 5. f(4,4)=42, f(4,5)=34f(4, 4) = 42, \ f(4, 5) = 34, so r=5r=5 is the answer. In the second test case n=5n=5, and the array a=[7,5,3,1,7]a= [7, 5, 3, 1, 7]. For the first query, f(1,r)7f(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 11. For the second query, f(5,r)7f(5, r) \ge 7. f(5,5)=7f(5, 5) = 7, so the answer is 55. For the third query, f(2,r)3f(2, r) \ge 3. $f(2, 2) = 5, \ f(2, 3) = 1, \ f(2, 4) = 1, \ f(2, 5) = 1$, so the answer is 22.

在线编程 IDE

建议全屏模式获得最佳体验