CF1088B Ehab and subtraction
题目描述
给定一个数组 $a$。你需要重复进行 $k$ 次如下操作:找到数组中最小的非零元素,输出它,然后将它从所有非零元素中减去。如果所有元素都是 $0$,则输出 $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$。
输出格式
每次操作前输出当前数组中最小的非零元素,每行输出一个。如果所有元素都是 $0$,则输出 $0$。
说明/提示
在第一个样例中:
第一步:数组为 $[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$。
由 ChatGPT 4.1 翻译