编程题
### 问题描述 最近刷短视频刷多了,蓝桥A梦看着大神们把许多的多米诺骨牌排列出各种样子后又推倒,感觉相当的解压啊! 所以它决定自己也来堆一堆,他面前有 $n$ 个骨牌,每个骨牌的长度是 $a_i$ 。 众所周知,多米诺骨牌的数量越多越好,所以他要从里面尽可能多的取出骨牌来。而且为了倒下的时候足够连贯,蓝桥A梦希望所有取出来的骨牌中,最小的骨牌和最大的骨牌高度差不超过 $k$ 。 现在蓝桥A梦想知道它最多能取出多少骨牌,并把这些骨牌按照顺序输出。 如果有多种取法,就输出其中最小的骨牌尽可能小的取法。 ### 输入格式 第一行输入二个整数 $n$ 和 $k$ ,表示一共有 $n$ 个骨牌,且取出的最小的骨牌和最大的骨牌高度差不超过 $k$ 。 第二行输入 $n$ 个整数 $a_i$ ,表示第 $i$ 个骨牌的长度。 ### 输出格式 第一行输出一个整数 $m$ ,表示最多能取出的骨牌数。 第二行按照原来的顺序,输出取出的骨牌的高度。 ### 样例输入1 ```text 7 2 2 5 4 3 6 6 3 ``` ### 样例输出1 ```text 4 2 4 3 3 ``` ### 样例说明 最多可以取 $4$ 个骨牌,并使得最大最小的骨牌高度差不超过 $2$ 。 一共有两种取法:$2、4、3、3$ 和 $5、4、6、6$ ,但前者中最小的骨牌高度为 $2$ ,后者最小的骨牌高度为 $4$ ,所以我们选择前一种取法。 ### 评测数据规模 对于所有评测数据,$1\leq n \leq 1\times 10^5$,$1\leq k \leq 1\times 500$,$1\leq a_i \leq 1\times 10^6$。
查看答案
赣ICP备20007335号-2