CF1335C Two Teams Composing

题目描述

你有 $n$ 名学生需要管理,你需要从这些学生中恰好组建两支队伍,每支队伍由部分学生组成。每个学生有自己的技能值,第 $i$ 个学生的技能值为整数 $a_i$(不同学生的技能值可以相同)。 关于队伍的要求如下。首先,这两支队伍的人数必须相同。还有两个额外的限制: - 第一支队伍中的学生技能值必须各不相同(即队伍中所有技能值都不重复)。 - 第二支队伍中的学生技能值必须完全相同(即队伍中所有学生的技能值都一样)。 注意,第一支队伍中的某个学生的技能值可以与第二支队伍中某个学生的技能值相同。 举例如下(技能值如下所示): - $[1, 2, 3]$,$[4, 4]$ 不是一组合法的队伍,因为两队人数不同。 - $[1, 1, 2]$,$[3, 3, 3]$ 不是一组合法的队伍,因为第一队中有重复的技能值。 - $[1, 2, 3]$,$[3, 4, 4]$ 不是一组合法的队伍,因为第二队中技能值不全相同。 - $[1, 2, 3]$,$[3, 3, 3]$ 是一组合法的队伍。 - $[5]$,$[6]$ 是一组合法的队伍。 你的任务是,对于每组数据,求出可以组建合法队伍对的最大可能队伍人数 $x$,即每支队伍的人数均为 $x$(第一队技能值互不相同,第二队技能值全相同)。每个学生不能同时属于两支队伍。 你需要回答 $t$ 组独立的测试数据。

输入格式

输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试数据组数。接下来是 $t$ 组测试数据。 每组测试数据的第一行包含一个整数 $n$($1 \le n \le 2 \times 10^5$),表示学生人数。第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le n$),其中 $a_i$ 表示第 $i$ 个学生的技能值。不同学生的技能值可以相同。 保证所有测试数据中 $n$ 的总和不超过 $2 \times 10^5$(即 $\sum n \le 2 \times 10^5$)。

输出格式

对于每组测试数据,输出一个整数,表示可以组建合法队伍对的最大可能队伍人数 $x$。

说明/提示

在样例的第一个测试数据中,可以组建两支人数为 $3$ 的队伍:第一队为 $[1, 2, 4]$,第二队为 $[4, 4, 4]$。注意,也可以有其他方式组建两支合法的队伍。 由 ChatGPT 4.1 翻译