#T062. 简单的子序列

简单的子序列

题目描述

这是一个由nn个整数组成的序列:[a1,a2,,an][a_1, a_2, \dots, a_n]。 这个序列将有一个对比值k=a1a2+a2a3++an1ank = |a_1-a_2|+|a_2-a_3|+\cdots+|a_{n-1}-a_n|,当然,特别的,如果n=1n=1,我们对比值默认为00

那么现在问题是: 给你一个整数aa。你的任务是构建一个子序列bb,这是子序列bb的要求如下:

1.bb非空,即至少有一个元素

2.bbaa的子序列,即可以从aa中随意删除若干个元素(可以不删)

3.bb的对比值kk必须等于aa的对比值。

你能找出最小长度的bb序列吗?如果能,请输出长度。

输入

第一行包含一个整数t,代表测试样例的组数。 (1t1041 \le t \le 10^4) 对于每组测试样例: 第一行包含一个整数nn,代表数组aa的长度。 (1n31051 \le n \le 3 \cdot 10^5) 第二行包含nn个整数,代表 a1,a2,,ana_1, a_2, \cdot, a_n。 (0ai1090 \le a_i \le 10^9) 数据保证所有的nn总和不超过31053 \cdot 10^5.

输出

对于每组测试样例,输出一个整数,即bb数组的最小长度。

4
5
1 3 3 3 7
2
4 2
4
1 1 1 1
7
5 4 2 1 0 0 4
2
2
1
3