#CF2006D. Iris 与相邻乘积
Iris 与相邻乘积
D. Iris 与相邻乘积
每次测试时间限制: 3 秒
每次测试内存限制: 256 兆字节
Iris 刚刚在数学课上学了乘法。但由于她的大脑无法承受太复杂的计算,如果两个整数的乘积超过 ,她就无法将它们相乘 —— 否则她的大脑会爆炸!
老师每天都会布置一道难题作为暑假作业。现在,她有一个包含 个元素的数组 ,她需要计算每两个相邻元素的乘积(即 ,,依此类推)。Iris 希望自己的大脑安全工作,为此她想修改数组 ,使得对每个 ,都有 。她可以执行以下两种操作:
- 以任意方式重新排列数组 中的元素。
- 选择数组 中的任意一个元素,将其值改为 到 之间的任意整数。
Iris 希望最小化第 2 类操作的次数。
然而,这还不是暑假的全部!暑假持续 天,在第 天,Iris 需要针对子数组 完成数学作业。请帮助 Iris 并告诉她每天至少需要多少次第 2 类操作。注意:每天的操作是相互独立的,即数组 本身不会改变。
输入
每个测试包含多个测试用例。第一行包含一个整数 ()—— 测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含三个整数 (,,)—— 数组 的长度、天数以及乘积的上界。
第二行包含 个整数 ()—— 数组 的元素。
随后 行,第 行包含两个整数 和 ()—— 第 天作业的子数组边界。
保证所有测试用例的 之和不超过 , 之和不超过 。
输出
对于每个测试用例,输出一行包含 个整数 —— 每天所需的最少第 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 总是可以相乘 和 ,不需要任何操作,因此答案是 。
在第二个测试用例中:
- 第一天的作业是 。Iris 可以将其重排为 ,因此不需要第 2 类操作。
- 第二天的作业是 ,她可以更改一个元素得到 ,因此需要 次第 2 类操作。