CF1917A.Least Product

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Least Product

题目描述

给定一个整数数组 a1,a2,,ana_1, a_2, \dots, a_n。你可以对数组执行如下操作任意次(可以为零次):

  • 选择数组中的任意一个元素 aia_i,并将其值更改为 00aia_i 之间的任意整数(包含端点)。更正式地说,如果 ai<0a_i < 0,则可以将 aia_i 替换为 [ai,0][a_i, 0] 区间内的任意整数;否则可以将 aia_i 替换为 [0,ai][0, a_i] 区间内的任意整数。

rr 为经过任意次操作后所有 aia_i 的最小可能乘积。

请你求出使得乘积等于 rr 所需的最小操作次数,并输出一种最短的操作序列。如果有多种答案,可以输出任意一种。

输入格式

每组测试数据包含多个测试用例。第一行包含一个整数 tt1t5001 \leq t \leq 500)——表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn1n1001 \leq n \leq 100)——表示数组的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n109ai109-10^9 \leq a_i \leq 10^9)。

输出格式

对于每个测试用例:

  • 第一行输出最小操作次数 kk0kn0 \leq k \leq n)。
  • 接下来的 kk 行,每行输出两个整数 iixx,表示第 jj 次操作:将 aia_i 替换为 xx

说明/提示

在第一个测试用例中,我们可以将第一个整数改为 00,此时乘积变为 00,这是最小可能值。

在第二个测试用例中,初始时所有整数的乘积为 28(1)3=482 \cdot 8 \cdot (-1) \cdot 3 = -48,这已经是最小可能值,因此无需进行任何操作。

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验