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

Задача . B. Юные следопыты


Отряд юных следопытов отправился в учебную экспедицию навстречу своим первым приключениям. И возглавляет их старший следопыт Рассел. Вот герои зашли в лес, разбили лагерь и дальше решили разделиться на группы, чтобы исследовать как можно больше интересных мест. Рассел должен был выбрать состав групп, но столкнулся с одной проблемой...

Многие юные следопыты неопытны, и отправлять их маленькими группами — не всегда хорошая идея. Даже сам Рассел недавно стал старшим следопытом и нечасто бывал в экспедициях. Каждый следопыт характеризуется своей неопытностью — целым положительным числом \(e_i\). Рассел решил, что юный следопыт с неопытностью \(e\) может идти лишь в группе, количество следопытов в которой не меньше \(e\).

Теперь задача Рассела — определить, какое наибольшее число групп следопытов он сможет организовать. При этом может получиться, что некоторые следопыты не войдут в состав ни одной группы, это не страшно, ведь и в лагере для них найдется работа. Рассел очень переживает за успех экспедиции, и потому попросил вас помочь ему.

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

В первой строке записано число \(T\) (\(1 \leq T \leq 2 \cdot 10^5\)) — количество независимых тестовых случаев. В следующих \(2T\) строках следует описание тестовых случаев.

В первой строке описания каждого теста задано целое число юных следопытов \(N\) (\(1 \leq N \leq 2 \cdot 10^5\)).

В следующей строке записаны \(N\) целых чисел \(e_1, e_2, \ldots, e_N\) (\(1 \leq e_i \leq N\)), где \(e_i\) — неопытность \(i\)-го следопыта.

Гарантируется, что сумма \(N\) по всем тестовым случаям не превосходит \(3 \cdot 10^5\).

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

Выведите \(T\) чисел, каждое на отдельной строке.

В \(i\)-й строке выведите наибольшее число групп, которое можно организовать в \(i\)-м тестовом случае.

Примечание

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

Во втором примере можно сформировать две группы. В первой группе окажутся следопыты с неопытностью \(1\), \(2\) и \(3\), а во второй группе — два следопыта с неопытностью \(2\).

Этот способ — не единственный возможный. Можно, например, сформировать одну группу из трех следопытов с неопытностью \(2\), а также еще одну группу, в которой будет всего один следопыт с неопытностью \(1\). При таком разбиении на группы следопыт с неопытностью \(3\) не войдет в состав ни одной группы.


Примеры
Входные данныеВыходные данные
1 2
3
1 1 1
5
2 3 1 2 2
3
2

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

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