#CF2135A. 消除差异

消除差异

题目翻译

我们定义一个为一个数组,其中所有元素都等于该数组的长度。
例如,[3,3,3][3,3,3][1][1][4,4,4,4][4,4,4,4] 都是块,而 [1,1,1][1,1,1][2,3,3][2,3,3] 则不是。

如果一个数组可以由任意多个块(可能为零个)连接而成,则称该数组是整洁的。注意,空数组总是整洁的。

现给定一个由 nn 个整数组成的数组 aa
请找出它的最长整洁子序列的长度。

* 子序列 cc 是序列 aa 的一个子序列,如果 cc 可以通过从 aa 中删除若干(可能为零个或全部)元素(不改变剩余元素的相对顺序)得到。


输入格式
每个测试点包含多个测试用例。第一行包含测试用例的数量 tt1t1041 \le t \le 10^4)。
每个测试用例的描述如下:
第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)——数组 aa 的长度。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n)——数组 aa 的元素。
保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出格式
对于每个测试用例,输出一个整数——该数组 aa 的最长整洁子序列的长度。


示例

输入:

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

输出:

1
2
4
5
0
5

说明
在第一个测试用例中,整个数组 [1][1] 是整洁的,因为它本身就是一个块。
在第二个测试用例中,整个数组 [2,2][2,2] 是整洁的,因为它本身就是一个块。
在第三个测试用例中,整个数组 [2,2,1,1][2,2,1,1] 是整洁的,因为它由三个块连接而成:[2,2][2,2][1][1][1][1]
在第四个测试用例中,aa 的一个最长整洁子序列是 [1,3,3,3,1][1,3,3,3,1]
在第五个测试用例中,aa 的最长整洁子序列是空序列。