#CF2006D. Iris 与相邻乘积

Iris 与相邻乘积

D. Iris 与相邻乘积

每次测试时间限制: 3 秒
每次测试内存限制: 256 兆字节

Iris 刚刚在数学课上学了乘法。但由于她的大脑无法承受太复杂的计算,如果两个整数的乘积超过 kk,她就无法将它们相乘 —— 否则她的大脑会爆炸!

老师每天都会布置一道难题作为暑假作业。现在,她有一个包含 nn 个元素的数组 aa,她需要计算每两个相邻元素的乘积(即 a1a2a_1 \cdot a_2a2a3a_2 \cdot a_3,依此类推)。Iris 希望自己的大脑安全工作,为此她想修改数组 aa,使得对每个 1i<n1 \le i < n,都有 aiai+1ka_i \cdot a_{i+1} \le k。她可以执行以下两种操作:

  1. 以任意方式重新排列数组 aa 中的元素。
  2. 选择数组 aa 中的任意一个元素,将其值改为 11kk 之间的任意整数。

Iris 希望最小化第 2 类操作的次数。

然而,这还不是暑假的全部!暑假持续 qq 天,在第 ii 天,Iris 需要针对子数组 bli,bli+1,,brib_{l_i}, b_{l_i+1}, \dots, b_{r_i} 完成数学作业。请帮助 Iris 并告诉她每天至少需要多少次第 2 类操作。注意:每天的操作是相互独立的,即数组 bb 本身不会改变。

输入

每个测试包含多个测试用例。第一行包含一个整数 tt1t5×1041 \le t \le 5 \times 10^4)—— 测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含三个整数 n,q,kn, q, k2n1052 \le n \le 10^51q1051 \le q \le 10^51k1061 \le k \le 10^6)—— 数组 bb 的长度、天数以及乘积的上界。

第二行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n1bik1 \le b_i \le k)—— 数组 bb 的元素。

随后 qq 行,第 ii 行包含两个整数 lil_irir_i1li<rin1 \le l_i < r_i \le n)—— 第 ii 天作业的子数组边界。

保证所有测试用例的 nn 之和不超过 10510^5qq 之和不超过 10510^5

输出

对于每个测试用例,输出一行包含 qq 个整数 —— 每天所需的最少第 2 类操作次数。

示例

输入

5  
3 1 1  
1 1 1  
1 3  
3 2 10  
1 10 9  
1 3  
2 3  
5 4 2  
2 2 2 2 2  
1 2  
2 4  
2 5  
1 5  
6 5 10  
3 2 5 10 10 1  
1 4  
3 6  
1 6  
2 5  
5 6  
10 10 10  
10 9 8 7 6 5 4 3 2 1  
1 10  
1 9  
1 8  
1 7  
2 10  
3 10  
4 10  
5 10  
3 9  
6 8  

输出

0   
0 1   
1 1 2 2   
1 1 1 1 0   
3 3 4 3 2 2 1 1 2 1   

注意

在第一个测试用例中,由于 Iris 总是可以相乘 1111,不需要任何操作,因此答案是 00

在第二个测试用例中:

  • 第一天的作业是 [1,10,9][1,10,9]。Iris 可以将其重排为 [9,1,10][9,1,10],因此不需要第 2 类操作。
  • 第二天的作业是 [10,9][10,9],她可以更改一个元素得到 [1,9][1,9],因此需要 11 次第 2 类操作。