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

Задача . D. Вырезание массива


Вам дан массив \(s\) из \(n\) целых чисел.

Вам нужно найти любой массив \(t\) длины \(k\), такой, что можно вырезать максимально возможное число копий \(t\) из \(s\).

Вырезание копии \(t\) проводится следующим образом: для каждого элемента \(t_i\) массива \(t\) надо найти элемент, равный \(t_i\), в \(s\), после чего удалить его из \(s\). Если для какого-то \(t_i\) нельзя найти равный элемент в \(s\), то вырезать еще одну копию \(t\) нельзя. В обоих массивах элементы могут повторяться.

К примеру, если \(s = [1, 2, 3, 2, 4, 3, 1]\) и \(k = 3\), то один из возможных ответов — следующий: \(t = [1, 2, 3]\). Этот массив \(t\) можно вырезать \(2\) раза.

  • Первую копию \(t\) можно вырезать следующим образом: \([1, \underline{\textbf{2}}, 3, 2, 4, \underline{\textbf{3}}, \underline{\textbf{1}}]\) (использовать выделенные элементы). После вырезания первой копии \(t\) массив \(s\) станет \([1, 3, 2, 4]\).
  • Вторую копию \(t\) можно вырезать следующим образом: \([\underline{\textbf{1}}, \underline{\textbf{3}}, \underline{\textbf{2}}, 4]\). После вырезания второй копии \(t\) массив \(s\) станет \([4]\).

Вы должны найти такой массив \(t\), что можно вырезать максимально возможное количество копий \(t\) из \(s\). Если ответов несколько, выведите любой из них.

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

В первой строке заданы два целых числа \(n\) и \(k\) (\(1 \le k \le n \le 2 \cdot 10^5\)) — количество элементов в \(s\) и требуемое количество элементов в \(t\), соответственно.

Во второй строке заданы \(n\) целых чисел \(s_1, s_2, \dots, s_n\) (\(1 \le s_i \le 2 \cdot 10^5\)).

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

Выведите \(k\) целых чисел — элементы массива \(t\), такие, что можно вырезать максимально возможное количество копий этого массива из \(s\). Если ответов несколько, выведите любой из них. Массив \(t\) может содержать повторяющиеся элементы. Все элементы \(t\) (\(t_1, t_2, \dots, t_k\)) должны удовлетворять следующему ограничению: \(1 \le t_i \le 2 \cdot 10^5\).

Примечание

Первый тест описан в условии.

Во втором тесте ответ \([7, 3, 1, 3]\) (или любая его перестановка). Можно показать, что нельзя вырезать более \(2\) копий любого массива, удовлетворяющего условию задачи.

В третьем примере можно вырезать массив \(t\) \(5\) раз.


Примеры
Входные данныеВыходные данные
1 7 3
1 2 3 2 4 3 1
1 2 3
2 10 4
1 3 1 3 10 3 7 7 12 3
7 3 1 3
3 15 2
1 2 1 1 1 2 1 1 2 1 2 1 1 1 1
1 1

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

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