#CF2600D. Iris 与相邻乘积
Iris 与相邻乘积
D. Iris 与相邻乘积
时间限制:3 秒
内存限制:256 MB
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 操作。