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

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;
}

http://www.xdnf.cn/news/2393.html

相关文章:

  • Java 程序运行和类路径处理
  • map和set的应用总结
  • MySQL 常用语句教程
  • Python数值类型修炼手册:从青铜到王者的进阶之路
  • Buffer Pool是什么,有什么作用
  • 【MATLAB第118期】基于MATLAB的双通道CNN多输入单输出分类预测方法
  • Android学习总结之协程对比优缺点(协程一)
  • 腾讯云智三道算法题
  • 侵水防触电的原理是什么? 侵水防触电算先进技术吗?-优雅草卓伊凡
  • 【Redis——通用命令】
  • 写时拷贝讲解
  • SQL:MySQL 函数
  • Eigen库入门
  • 博客文章格式更新2.0
  • N维漂洛界的定义和参数方程
  • 算法设计课作业
  • 【概念】什么是 JWT Token?
  • JAVA多线程(8.0)
  • matlab实现稀疏低秩去噪
  • day7 python针对心脏病数据集预处理
  • Java ThreadLocal与内存泄漏
  • 黑马Java基础笔记-4
  • 青少年CTF-贪吃蛇
  • YOLOv11改进:RevColV1可逆列目标检测网络(特征解耦助力小目标检测)
  • 写入cache时数据格式错误产生的ERRO导致整个测试框架无法运行
  • 大模型时代的语言格局演变:为什么是 JavaScript?
  • PyTorch数据加载与预处理
  • 模板引擎语法-过滤器
  • TeaCache原理及代码
  • 泛型进阶之通配符