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

Задача . F. Уравняй массив


Поликарпу подарили массив \(a\) длины \(n\). Поликарп считает массив красивым, если существует такое число \(C\), что каждое число встречается в массиве либо ноль, либо \(C\) раз. Поликарп хочет удалить из массива \(a\) некоторые элементы, чтобы сделать массив красивым.

Например, если \(n=6\) и \(a = [1, 3, 2, 1, 4, 2]\), то возможны следующие варианты сделать массив \(a\) красивым:

  • Поликарп удаляет элементы на позициях \(2\) и \(5\), массив \(a\) становится равным \([1, 2, 1, 2]\);
  • Поликарп удаляет элементы на позициях \(1\) и \(6\), массив \(a\) становится равным \([3, 2, 1, 4]\);
  • Поликарп удаляет элементы на позициях \(1, 2\) и \(6\), массив \(a\) становится равным \([2, 1, 4]\);

Помогите Поликарпу определить: какое минимальное количество элементов необходимо удалить из массива \(a\), чтобы сделать его красивым.

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

В первой строке находится одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следуют \(t\) наборов входных данных.

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

Во второй строке каждого набора входных данных находятся \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)) — массив \(a\).

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

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

Для каждого набора входных данных выведите одно целое число — минимальное количество элементов, которые необходимо удалить, что сделать массив \(a\) красивым.


Примеры
Входные данныеВыходные данные
1 3
6
1 3 2 1 4 2
4
100 100 4 100
8
1 2 3 3 3 2 6 6
2
1
2

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

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