Олимпиадный тренинг

Задача . D. Коробка с конфетами (легкая версия)


Фактически эта задача является подзадачей задачи G из этого контеста.

В коробке с конфетами находятся \(n\) конфет. Тип \(i\)-й конфеты равен \(a_i\) (\(1 \le a_i \le n\)).

Вы хотите приготовить подарок, используя некоторые из этих конфет, со следующим ограничением: количества конфет каждого типа, находящегося в подарке, должны быть различны (то есть, например, подарок, имеющий две конфеты типа \(1\) и две конфеты типа \(2\) является плохим).

Возможно, что некоторые типы конфет могут вообще не находиться в подарке. Также возможно, что не все конфеты каких-то типов будут взяты в подарок.

Ваша задача — найти максимально возможный размер одного подарка, который Вы можете приготовить, используя конфеты, которые Вы имеете.

Вам необходимо ответить на \(q\) независимых запросов.

Если Вы программируете на Python, рассмотрите возможность отправки решения на PyPy, а не на Python, когда будете отправлять свой код.

Входные данные

Первая строка входных данных содержит одно целое число \(q\) (\(1 \le q \le 2 \cdot 10^5\)) — количество запросов. Каждый запрос представлен двумя строками.

Первая строка каждого запроса содержит одно целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество конфет.

Вторая строка каждого запроса содержит \(n\) целых числе \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le n\)), где \(a_i\) равно типу \(i\)-й конфеты в коробке.

Гарантируется, что сумма \(n\) по всем запросам не превосходит \(2 \cdot 10^5\).

Выходные данные

Для каждого запроса выведите одно целое число — максимально возможный размер одного подарка, который Вы можете составить, используя конфеты, которые Вы имеете в этом запросе, с учетом ограничения, описанного в условии задачи.

Примечание

В первом запросе Вы можете приготовить подарок, состоящий из двух конфет типа \(8\) и одной конфеты типа \(5\), суммарно состоящий из \(3\) конфет.

Заметьте, что это не единственное возможное решение — взятие двух конфет типа \(4\) и одной конфеты типа \(6\) также является правильным.


Примеры
Входные данныеВыходные данные
1 3
8
1 4 8 4 5 6 3 8
16
2 1 3 3 4 3 4 4 1 3 2 2 2 4 1 1
9
2 2 4 4 4 7 7 7 7
3
10
9

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя