A. Be Positive

time limit per test

1 second

memory limit per test

256 megabytes

Given an array a of n elements, where each element is equal to −1, 0, or 1. In one operation, you can choose an index i and increase ai by 1 (that is, assign ai:=ai+1). Operations can be performed any number of times, choosing any indices.

The goal is to make the product of all elements in the array strictly positive with the minimum number of operations, that is, a1⋅a2⋅a3⋅...⋅an>0. Find the minimum number of operations.

It is guaranteed that this is always possible.

Input

Each test consists of several test cases.

The first line contains one integer t (1≤t≤104) --- the number of test cases. The description of the test cases follows.

The first line of each test case contains one integer n (1≤n≤8) --- the length of the array a.

The second line contains n integers a1,a2,...,an, where −1≤ai≤1 --- the elements of the array a.

Output

For each test case, output one integer --- the minimum number of operations required to make the product of the elements in the array strictly positive.

Example

Input

Copy

复制代码

3

3

-1 0 1

4

-1 -1 0 1

5

-1 -1 -1 0 0

Output

Copy

复制代码

3

1

4

Note

In the first test case: from [−1,0,1], you can obtain [1,1,1] in 3 operations.

In the second test case: it is enough to perform 0→1 (1 operation). In the resulting array a=[−1,−1,1,1], the product of all elements is 1.

In the third test case: turning two zeros into ones (2 operations), and one −1 into 1 (another 2 operations), for a total of 4.

解题说明:水题,分别统计出-1、0的次数,然后判断即可,0肯定需要变成1,-1如果出现奇数次肯定需要变成1。

cpp 复制代码
#include<stdio.h>

void main() 
{
	int t;
	scanf("%d", &t);
	while (t--) 
	{
		int c = 0, k = 0;
		int a;
		scanf("%d", &a);
		int b[9];
		for (int i = 0; i < a; i++) 
		{
			scanf("%d", &b[i]);
		}
		for (int i = 0; i < a; i++)
		{
			if (b[i] == 0)
			{
				c = c + 1;
			}
			if (b[i] < 0)
			{
				k = k + 1;
			}
		}
		if (k % 2 != 0)
		{
			printf("%d\n", c + 2);
		}
		else
		{
			printf("%d\n", c);
		}
	}
	return 0;
}
相关推荐
小O的算法实验室3 小时前
2026年COR SCI2区,自适应K-means和强化学习RL算法+有效疫苗分配问题,深度解析+性能实测,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
青岛少儿编程-王老师3 小时前
CCF编程能力等级认证GESP—C++7级—20250927
数据结构·c++·算法
夏鹏今天学习了吗4 小时前
【LeetCode热题100(39/100)】对称二叉树
算法·leetcode·职场和发展
天选之女wow5 小时前
【代码随想录算法训练营——Day34】动态规划——416.分割等和子集
算法·leetcode·动态规划
Boop_wu5 小时前
[数据结构] 哈希表
算法·哈希算法·散列表
Mingze03146 小时前
C语言四大排序算法实战
c语言·数据结构·学习·算法·排序算法
IT古董7 小时前
【第五章:计算机视觉-项目实战之生成式算法实战:扩散模型】3.生成式算法实战:扩散模型-(3)DDPM模型训练与推理
人工智能·算法·计算机视觉
独自破碎E7 小时前
Leetcode2166-设计位集
java·数据结构·算法
Swift社区7 小时前
LeetCode 396 - 旋转函数 (Rotate Function)
算法·leetcode·职场和发展