Это сложная версия задачи. Отличие между версиями заключается в том, что в этой версии вам нужно решить задачу для различных значений $$$k$$$. Вы можете делать взломы только в том случае, если решили все версии этой задачи.
Алп любит морковь. Поскольку он ещё не обедал, он хочет купить морковный салат, чтобы поесть на улице. Однако у него есть странная навязчивая идея: все морковки должны быть в точности одинаковой длины, иначе салат кажется ему неэстетичным. Так как Алп находится посреди улицы и у него нет ножа, он не может нарезать морковь самостоятельно. Вам нужно разделить все морковки с помощью своей машины и продать их Алпу.
Вам даны $$$n$$$ вкусных морковок размером $$$a_1, a_2, \ldots, a_n$$$. Также вам дана машина для нарезки, которая работает следующим образом.
Мы хотим продать часть финальных морковок заинтересованному покупателю, который хочет, чтобы все они были одинаковой длины.
Определите максимальное количество морковок, которое мы можем продать ровно после $$$k$$$ использований машины. Решите задачу для каждого $$$k = 1, 2, \ldots, m$$$ независимо.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
В первой строке каждого набора входных данных содержатся $$$n$$$ и $$$m$$$ ($$$1 \le n,m \le 2 \cdot 10^5$$$) — количество морковок и максимально возможная длина морковки соответственно.
Во второй строке каждого набора входных данных содержатся $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le m$$$) — исходные размеры морковок.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$ и сумма $$$m$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите $$$m$$$ целых чисел — ответ для каждого $$$k=1, 2, \ldots, m$$$.
65 41 2 3 4 45 81 1 8 8 81 867 91 7 5 1 7 5 34 11 1 1 13 53 1 5
6 14 14 146 12 26 26 26 26 26 262 3 6 6 6 6 6 67 17 29 29 29 29 29 29 2943 7 9 9 9
В первом наборе входных данных даны морковки $$$[1, 2, 3, 4, 4]$$$.
Для $$$k=1$$$ оптимально выбрать $$$x=2$$$ и множество $$$[2, 3, 4, 4]$$$. Мы получим $$$[1, 2, 2, 1, 2, 2, 2, 2]$$$. Можно продать $$$6$$$ морковок длины $$$2$$$.
Для $$$k=2$$$ сначала оптимально выбрать $$$x=2$$$ и множество $$$[2, 3, 4, 4]$$$. Мы получим $$$[1, 2, 2, 1, 2, 2, 2, 2]$$$. Для второй операции оптимально выбрать $$$x=1$$$ и множество всех морковок. Мы получим $$$14$$$ морковок одинаковой длины. Можно продать $$$14$$$ морковок длины $$$1$$$.