#USACOC2221A. Minimizing Haybales

Minimizing Haybales

题目描述

Bessie 感到无聊,于是又在 Farmer John 的牛棚里制造麻烦。FJ 有 NN 堆草堆。对于每个 i[1,N]i\in [1,N],第 ii 堆草堆有 hih_i 的草。Bessie 不想让任何的草倒下来,所以她唯一可以执行的操作为:

  • 如果两个相邻的草堆的高度相差不超过 KK,她可以交换这两堆草堆。

Bessie 在一系列这样的操作之后可以得到的的字典序最小的高度序列是什么?

  • 1N1051\leq N \leq 10^5
  • 1hi1091\le h_i\le 10^9
  • 1K1091\le K\le 10^9

输入格式

输入的第一行包含 NNKK。第 i+1i+1 行包含第 ii 堆草堆的高度。

输出格式

输出 NN 行,第 ii 行包含答案中第 ii 堆草堆的高度。

5 3
7
7
3
6
2
5 3
7
7
3
6
2

测试点性质

  • 所有测试点的 10% 满足 N100N\le 100
  • 所有测试点的另外 20% 满足 N5000N\le 5000
  • 其余 70% 的测试点没有额外限制。

注意:本题的时间和内存限制分别为 4 秒和 512MB,通常限制的两倍。

题目提供者

供题:Daniel Zhang,Benjamin Qi