题目描述
我们称一个数组为 平衡的 当且仅当数组中每个不同元素出现的次数都相同。例如,[1,1,3,3,6,6] 和 [2,2,2,2] 是平衡的,但 [1,2,3,3] 不是平衡的(元素 1 和 3 的出现次数不同)。注意空数组被视为平衡的。
给你一个非降序数组 a,长度为 n。请你求出它的最长平衡子序列的长度。
子序列的定义:序列 b 是序列 a 的子序列,当且仅当可以通过从 a 中删除若干(可能为 0 或全部)元素得到 b。
输入格式
输入包含多组测试数据。第一行包含一个整数 t(1≤t≤500),表示测试用例数量。随后是 t 个测试用例,每个测试用例包含两行:
- 第一行包含一个整数 n(1≤n≤100)——数组 a 的长度;
- 第二行包含 n 个整数 a1,a2,…,an,满足 1≤a1≤a2≤⋯≤an≤n。
输出格式
对于每个测试用例,输出一个整数——数组 a 的最长平衡子序列的长度。
样例输入
4
5
1 1 4 4 4
2
1 2
15
1 1 1 1 1 2 2 2 2 3 3 3 4 4 5
5
3 3 3 3 3
样例输出
4
2
9
5
说明
样例 1 解释
原数组 [1,1,4,4,4] 不是平衡的(1 出现 2 次,4 出现 3 次)。选择子序列 [1,1,4,4],各元素出现次数均为 2,长度为 4,为最长可能值。
样例 2 解释
[1,2] 已经平衡。
样例 3 解释
可取子序列 [1,1,1,2,2,2,3,3,3],长度为 9。
样例 4 解释
整个数组已平衡,长度为 5。
数据范围
1≤t≤500, 1≤n≤100, 1≤ai≤n。