每 2 个连续元素的和都是偶数。

题目

给定一个序列 a1,a2,…,an,找到需要从序列中移除的最小元素数,以便在移除后,每 2 个连续元素的和都是偶数。

输入

每个测试包含多个测试案例。第一行包含一个整数 t(1≤t≤100) — 测试案例的数量。接下来是测试案例的描述。

每个测试案例的第一行包含一个整数 n (3≤n≤105)。

每个测试案例的第二行包含 n个整数 a1,a2,…,an (1≤ai≤10^9) — 序列的元素。

保证所有测试案例中 n 的总和不超过 10^5。

输出

对于每个测试案例,输出一个整数 — 移除序列中的最小元素数,以满足每 2个连续元素的和都是偶数。

示例

输入

2
5
2 4 3 6 8
6
3 5 9 7 1 3

 输出

1
0

备注

在第一个测试案例中,移除 33 后,序列变为 [2,4,6,8][2,4,6,8]。连续的元素对是 {[2,4],[4,6],[6,8]}{[2,4],[4,6],[6,8]}。现在每个连续的对都有偶数和。因此,我们只需要移除 1 个元素以满足所需条件。

在第二个测试案例中,每个连续对的和已经是偶数,所以不需要移除任何元素。

C程序源代码

#include<stdio.h>
int main(){
	int group,count,m=0,n=0;
	scanf("%d",&group);
	int b[group];
	for(int i=0;i<group;i++){
		int m=0,n=0;
		scanf("%d",&count);
		int a[count];
		for(int i=0;i<count;i++){
			scanf("%d",&a[i]);
		}
		for(int i=0;i<count;i++){
			if(a[i]%2==0){
			m++;
			}else{
				n++;
			}
		}
		if(m>n){
			b[i]=n;
		}else{
			b[i]=m;
		}
	
	}
	
	
	for(int i=0;i<group;i++){
		printf("%d\n",b[i]);
	}
	
	
	return 0;
}

 

提示

计算奇数和偶数的个数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值