#CF1917A. A. 最小乘积
A. 最小乘积
A. 最小乘积
每个测试的时间限制:1 秒
内存限制:256 兆字节
题目描述
你有一个整数数组 。
你可以执行以下操作任意次数(包括零次):
- 选择任意一个元素 ,将其改为 到 之间的任意整数(包含端点)。
更正式地说:- 如果 ,则将 改为 中的任意整数;
- 否则,将 改为 中的任意整数。
设 为执行任意次操作后,所有 乘积的最小可能值。
请你找出使得乘积等于 所需的最少操作次数,并输出其中一种最短的操作序列。
如果有多组答案,输出任意一组即可。
输入格式
每个测试包含多个测试用例。
第一行包含一个整数 ()—— 测试用例的数量。
接下来是每个测试用例的描述:
- 每个测试用例的第一行包含一个整数 ()—— 数组长度。
- 第二行包含 个整数 ()。
输出格式
对于每个测试用例:
- 第一行输出最少操作次数 ()。
- 接下来的 行,每行包含两个整数 和 ,表示一次操作:将 替换为 。
示例
输入:
4
1
155
4
2 8 -1 3
4
-1 0 -2 -5
4
-15 -75 -25 -30
输出:
1
1 0
0
0
1
3 0
样例解释
- 第一个测试用例:将第一个数改为 ,乘积变为 ,这是可能的最小值。
- 第二个测试用例:初始乘积 已经是最小值,因此不需要操作。