| Kotlin Heroes: Episode 13 |
|---|
| Закончено |
Вам дан массив $$$a$$$, содержащий $$$n$$$ целых чисел.
За одну операцию вы можете выбрать некоторые элементы из этого массива и удалить их. Однако выбранные вами элементы должны соответствовать одному из следующих условий:
Обратите внимание, что если вы выбираете только $$$1$$$ элемент для удаления, он автоматически соответствует этим условиям.
Например, если $$$a = \{1, 2, 1, 1, 3\}$$$, некоторые из возможных элементов, которые вы можете удалить за одну операцию, это:
Однако вы не можете выбрать $$$2$$$-й, $$$3$$$-й и $$$4$$$-й элементы, потому что $$$2$$$-й элемент не равен $$$4$$$-му, но $$$3$$$-й элемент равен $$$4$$$-му.
Для каждого $$$x$$$ от $$$0$$$ до $$$n - 1$$$ вам необходимо вычислить минимальное количество операций, необходимых для уменьшения размера массива до ровно $$$x$$$.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Каждый набор входных данных состоит из двух строк:
Дополнительное ограничение на входные данные: сумма $$$n$$$ по всем наборам входных данных не превышает $$$3 \cdot 10^5$$$.
Для каждого набора входных данных выведите $$$n$$$ целых чисел $$$c_0, c_1, \dots, c_{n-1}$$$, где $$$c_i$$$ — минимальное количество операций, необходимых для уменьшения размера массива до ровно $$$i$$$.
5115 5 5 5 2 2 2 8 6 1 763 3 3 3 3 352 1 3 5 481 1 1 2 3 4 5 611
3 3 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1
В первом наборе входных данных ответ можно получить следующим образом:
| Название |
|---|


