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 翻译