CF1878E.Iva & Pav

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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>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.

输入格式

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 .

输出格式

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

    输出#1

    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)=0f(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)=1f(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)=1f(2, 2) = 5, \ f(2, 3) = 1, \ f(2, 4) = 1, \ f(2, 5) = 1 , so the answer is 22 .

首页