当前位置: 首页 > news >正文

A. Everybody Likes Good Arrays!

time limit per test

1 second

memory limit per test

256 megabytes

An array aa is good if for all pairs of adjacent elements, aiai and ai+1ai+1 (1≤i<n1≤i<n) are of different parity. Note that an array of size 11 is trivially good.

You are given an array of size nn.

In one operation you can select any pair of adjacent elements in which both elements are of the same parity, delete them, and insert their product in the same position.

Find the minimum number of operations to form a good array.

Input

Each test contains multiple test cases. The first line contains the number of test cases tt (1≤t≤5001≤t≤500). The description of the test cases follows.

The first line of each test case contains an integer nn (1≤n≤1001≤n≤100).

The second line of each test case contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤1091≤ai≤109).

Output

For each test case print an integer, the minimum number of operations required to form a good array.

Example

Input

Copy

 

3

5

1 7 11 2 13

4

1 2 3 4

6

1 1 1 2 2 3

Output

Copy

2
0
3

Note

Consider the first test case. Select the 22-nd and the 33-rd integers and apply the operation on them. The array changes from [1,7,11,2,13][1,7,11,2,13] to [1,77,2,13][1,77,2,13]. Next, select the 11-st and the 22-nd integers, array changes from [1,77,2,13][1,77,2,13] to [77,2,13][77,2,13]. Thus we require 22 operations. It can be proved that this is the minimum number of operations.

In the second test case, the given array is already good. So we require 00 operations.

解题说明:此题是一道数学题,需要保证连续两个元素奇偶性不同,直接遍历数列,找出存在相同奇偶性的二元组即可。

#include<stdio.h>
int main()
{int t;scanf("%d", &t);while (t--){int n, i;scanf("%d", &n);long long int a[101];int ans = 0;for (i = 0; i < n; i++){scanf("%lld", &a[i]);}for (i = 0; i < n - 1; i++){if ((a[i] % 2 == 1 && a[i + 1] % 2 == 1) || (a[i] % 2 == 0 && a[i + 1] % 2 == 0)){ans++;}}printf("%d\n", ans);}return 0;
}

相关文章:

  • 视频转gif在线工具-免费快捷
  • 如何创建成员内部类数组
  • 硬件工程师面试常见问题(8)
  • SQL语法基础,进阶,高级sql语句学习
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-网页图片显示问题
  • Hutool TreeUtil快速构建树形数据结构
  • 简易版2D我的世界C++程序(有点BUG,但是可以玩!!!)
  • 教育领域的AIGC革命:构建多模态智能教学系统
  • Java 安全:如何保护敏感数据?
  • pytorch python常用指令
  • GoLang基础
  • Java ThreadLocal与内存泄漏
  • SD模型的评估指标(挖坑中..)
  • 【强化学习(实践篇)】#1 多臂赌博机网格世界
  • 腾讯云智三道算法题
  • chrony服务器(1)
  • Python赋能教育:构建智能考试评分系统的最佳实践
  • 上位机知识篇---时钟分频
  • Android学习总结之自定义View绘制源码理解
  • springboot入门-controller层
  • 人民日报读者点题:规范涉企执法,怎样防止问题反弹、提振企业信心?
  • 商务部就海外社交平台上发布从所谓中国“代工厂”低价购买国际知名品牌事答问
  • “五一”假期云南铁路预计发送旅客超330万人次
  • 政治局会议:创新推出债券市场的“科技板”,加快实施“人工智能+”行动
  • 何立峰出席跨境贸易便利化专项行动部署会并讲话
  • 中美正在就关税问题谈判甚至会达成协议?外交部:都是假消息