CF1300A.Non-zero

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

Non-zero

题目描述

Guy-Manuel 和 Thomas 有一个长度为 nn 的整数数组 aa,即 a1,a2,,ana_1, a_2, \dots, a_n。每一步操作中,他们可以选择数组中的任意一个元素,将其加 11。形式化地说,每一步可以选择任意一个整数下标 ii1in1 \le i \le n),执行 ai:=ai+1a_i := a_i + 1

如果数组所有元素的和或者积等于零,Guy-Manuel 和 Thomas 不介意再进行一次操作。

他们最少需要进行多少步操作,才能使得数组所有元素的和与积都不为零?形式化地说,求最小操作次数,使得 a1+a2++an0a_1 + a_2 + \dots + a_n \ne 0a1a2an0a_1 \cdot a_2 \cdot \dots \cdot a_n \ne 0

输入格式

每组测试数据包含多个测试用例。

第一行包含一个整数 tt1t1031 \le t \le 10^3),表示测试用例的数量。

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

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n100ai100-100 \le a_i \le 100),表示数组的元素。

输出格式

对于每个测试用例,输出一个整数,表示使得数组所有元素的和与积都不为零所需的最小操作次数。

说明/提示

在第一个测试用例中,数组的和为 00。如果我们将第一个元素加 11,数组变为 [3,1,1][3, -1, -1],此时和为 11,积为 33

在第二个测试用例中,数组的和与积都为 00。如果我们将第二个和第三个元素各加 11,数组变为 [1,1,1,1][-1, 1, 1, 1],此时和为 22,积为 1-1。可以证明,无法用更少的步数实现目标。

在第三个测试用例中,数组的和与积都不为零,无需进行任何操作。

在第四个测试用例中,将第一个元素加 11 两次后,数组变为 [2,2,1][2, -2, 1],此时和为 11,积为 4-4

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

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