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

Задача . B. В чем сила, брат?


Стас — воспитатель в детском саду. Под его попечением находятся \(n\) детей. Он решил собрать из некоторых из них команду для «brawl:go 2».

У Стаса есть \(n\) улучшений, \(i\)-е из которых имеет тип \(a_i\). Сила ребенка равняется количеству различных типов улучшений у него.

Если Стас создает команду размера \(k\), он распределит все \(n\) улучшений между \(k\) детьми так, чтобы у каждого из \(k\) детей было хотя бы одно улучшение, и каждое улучшение он выдал ровно одному ребенку.

Для каждого целого \(k\) от \(1\) до \(n\) найдите минимальную сумму сил детей в команде размера \(k\).

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

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

Первая строка описания каждого набора входных данных содержит единственное целое число \(n\) (\(1 \le n \le 3 \cdot 10^5\)) — количество улучшений у Стаса.

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

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

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

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

Примечание

Для первого набора входных данных можно раздавать улучшения так, чтобы суммарная сила была минимальна:

  • \(k = 1: \{1, 1, 2\}\)
  • \(k = 2: \{1, 1\}, \{2\}\)
  • \(k = 3: \{1\}, \{1\}, \{2\}\)

Для второго набора входных данных можно раздавать улучшения так, чтобы суммарная сила была минимальна:

  • \(k = 1: \{1, 2, 2, 2, 4, 5\}\)
  • \(k = 2: \{2, 2, 2, 4, 5\}, \{1\}\)
  • \(k = 3: \{2, 2, 2, 5\}, \{1\}, \{4\}\)
  • \(k = 4: \{2, 2, 2\}, \{1\}, \{4\}, \{5\}\)
  • \(k = 5: \{2, 2\}, \{1\}, \{2\}, \{4\}, \{5\}\)
  • \(k = 6: \{1\}, \{2\}, \{2\}, \{2\}, \{4\}, \{5\}\)

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

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

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