A93475.Iva & Pav

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

Iva 和 Pav 是塞尔维亚著名的竞赛编程情侣。在塞尔维亚,人们称 Pav 为“papuca”,因此他会满足 Iva 的所有愿望。

Iva 给了 Pav 一个长度为 nn 的数组 aa

我们定义 f(l,r)=al & al+1 && arf(l, r) = a_l \ \& \ a_{l+1} \ \& \dots \& \ a_r(这里 $ & $ 表示按位与运算)。

注意,当 l>rl > r 时,f(l,r)f(l, r) 没有定义。

Iva 还给了 Pav qq 个询问。

每个询问包含两个数字 kkll,她希望 Pav 找出最大的下标 rrlrnl \le r \le n),使得 f(l,r)kf(l, r) \ge k

Pav 想要尽快解决这个问题,因为他不想让 Iva 不高兴。他需要你的帮助。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)——表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)——数组 aa 的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9)——数组 aa 的元素。

每个测试用例的第三行包含一个整数 qq1q1051 \le q \le 10^5)——Iva 给 Pav 的询问数量。

接下来的 qq 行,每行包含两个整数 llkk1ln1 \le l \le n1k1091 \le k \le 10^9)——子区间的左端点和题目描述中的整数 kk

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5,所有测试用例中 qq 的总和不超过 21052 \cdot 10^5

输出格式

对于每个询问,输出最大的下标 rrlrnl \le r \le n),使得 al & al+1 && arka_l \ \& \ a_{l+1} \ \& \dots \& \ a_r \ge k

如果不存在这样的 rr,输出 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

说明/提示

在第一个测试用例中,n=5n=5,数组 a=[15,14,17,42,34]a = [15, 14, 17, 42, 34]

第一个询问要求最大的下标 rr,使得 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,所以 r=2r=2 是答案。

第二个询问要求 f(2,r)15f(2, r) \ge 15。由于不存在这样的 rr,答案为 1-1

第三个询问要求 f(4,r)5f(4, r) \ge 5f(4,4)=42, f(4,5)=34f(4, 4) = 42, \ f(4, 5) = 34,所以 r=5r=5 是答案。

在第二个测试用例中,n=5n=5,数组 a=[7,5,3,1,7]a= [7, 5, 3, 1, 7]

对于第一个询问,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,所以答案是 11

对于第二个询问,f(5,r)7f(5, r) \ge 7

f(5,5)=7f(5, 5) = 7,所以答案是 55

对于第三个询问,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,所以答案是 22

首页