#CF1335C. 两队组建
两队组建
C. 两队组建
每次测试时间限制: 秒
内存限制: 兆字节
你有 名学生可供调配,你需要从中选出某一部分学生,恰好组成两支队伍。每名学生都有自己的技能,第 名学生的技能用整数 表示(不同学生可以有相同的技能)。
关于这两支队伍,有以下要求:
- 两支队伍的人数必须相同。
- 第一支队伍中的学生技能必须互不相同(即第一队中所有技能都是唯一的)。
- 第二支队伍中的学生技能必须全部相同(即第二队中所有技能都相等)。
注意:第一队中的某个技能可以与第二队中的技能相同。
考虑一些例子(给出的为技能列表):
- 与 不是有效的队伍对,因为两队人数必须相同;
- 与 不是有效的队伍对,因为第一队中不允许有相同的技能;
- 与 不是有效的队伍对,因为第二队中所有技能必须相同;
- 与 是有效的队伍对;
- 与 是有效的队伍对。
你的任务是找出最大的可能人数 ,使得可以组成两支人数均为 的合法队伍(第一队技能互不相同,第二队技能全部相同)。一名学生不能同时属于两支队伍。
你需要回答 个独立的测试用例。
输入
第一行包含一个整数 ()——测试用例的数量。
接下来是 个测试用例。
每个测试用例的第一行包含一个整数 ()——学生的数量。
第二行包含 个整数 (),其中 是第 名学生的技能。不同学生可以有相同技能。
保证所有测试用例的 之和不超过 ()。
输出
对于每个测试用例,输出答案——最大的可能人数 ,使得可以组成两支人数均为 的合法队伍。
示例
输入
4
7
4 2 4 1 4 3 4
5
2 1 5 4 3
1
1
4
1 1 1 3
输出
3
1
0
2
说明
在第一个测试用例中,可以构造两支大小为 的队伍:第一队是 ,第二队是 。注意,还有其他构造两支大小为 的合法队伍的方式。