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;
}
相关推荐
Ivanqhz4 分钟前
NFM(神经因子分解机)
开发语言·javascript·人工智能·算法·蓝桥杯
深圳市快瞳科技有限公司5 分钟前
从人工录入到秒级识别:保单OCR识别厂家选型指南
人工智能·算法·计算机视觉·ocr
小欣加油9 分钟前
leetcode1331 数组序号转换
数据结构·c++·算法·leetcode·职场和发展
学究天人13 分钟前
数学公理体系大全:第五章 序数与基数理论:超限算术与集合的大小
人工智能·线性代数·算法·机器学习·数学建模·原型模式
阿米亚波15 分钟前
【C++ STL】std::deque
数据结构·c++·笔记·算法·stl
金色旭光28 分钟前
YOLO26 目标检测原理
算法·yolo
梦回江东1 小时前
递归的编译优化(2)
算法
学究天人1 小时前
数学公理体系大全:第六章 选择公理的等价形式及证明
人工智能·线性代数·算法·机器学习·数学建模·概率论·原型模式
:-)1 小时前
基础算法-插入排序
数据结构·算法·排序算法
gumichef1 小时前
排序专题(插入,)
数据结构·算法·排序算法