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

Задача . B. Ехаб и вычитания


Вам дан массив \(a\). Необходимо повторить следующую операцию \(k\) раз: найти минимальный ненулевой элемент в массиве, вывести его, а затем вычесть его из всех ненулевых элементов массива. Если все элементы нули, просто выведите 0.

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

В первой строке входного файла записано два целых числа \(n\) и \(k\) \((1 \le n,k \le 10^5)\) — длина массива и количество операций, которые необходимо выполнить, соответственно.

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

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

Выводите минимальные ненулевые элементы перед каждой операцией, по одному в строке.

Примечание

В первом примере:

На первом шаге: массив равен \([1,2,3]\), и минимальный ненулевой элемент в нем это 1.

На втором шаге: массив равен \([0,1,2]\), и минимальный ненулевой элемент в нем это 1.

На третьем шаге: массив равен \([0,0,1]\), и минимальный ненулевой элемент в нем это 1.

На четвертом и пятом шаге массив равен \([0,0,0]\), поэтому вы должны вывести 0.

Во втором примере:

На первом шаге: массив равен \([10,3,5,3]\), и минимальный ненулевой элемент в нем это 3.

На втором шаге: массив равен \([7,0,2,0]\), и минимальный ненулевой элемент в нем это 2.


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

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

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