#P12701. [KOI 2022 Round 2] 升级

[KOI 2022 Round 2] 升级

题目背景

试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。

按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。

题目描述

你正在培养 NN 名游戏角色。第 ii 名角色的当前等级为 LiL_i1iN1 \leq i \leq N)。

为了提升角色的等级,你将总共进行 MM 次训练。每次训练按如下方式进行:

  • 按照等级从低到高的顺序,选择 KK 名角色。如果有多个角色的等级相同,可以从中任选。
  • 将所选角色的等级各提升 1 级。

例如,设 M=4M = 4K=3K = 3,并且 N=5N = 5 个角色的初始等级依次为 5、1、7、5、4。

第一次训练后,第 2、5、4 个角色的等级将提升,角色等级变为 5、2、7、6、5。

上面的例子中,每次训练之后角色的等级如下所示:

训练次数 角色等级
1 5,2,7,6,55, 2, 7, 6, 5
2 6,3,7,6,66, 3, 7, 6, 6
3 7,4,7,6,77, 4, 7, 6, 7
4 7,5,8,7,77, 5, 8, 7, 7

请你编写程序,在 MM 次训练全部结束后,按升序输出 NN 名角色的最终等级。

输入格式

第一行包含一个整数 NN,表示角色数量。

第二行包含 NN 个整数 L1,L2,,LNL_1, L_2, \ldots, L_N,表示每个角色的初始等级,以空格分隔。

第三行包含两个整数 MMKK,以空格分隔,表示总共进行 MM 次训练,每次训练提升等级的角色数为 KK

输出格式

一行输出 NN 个整数,表示 MM 次训练后各角色的等级,按升序排列。

5
5 1 7 5 4
4 3
5 7 7 7 8
4
7 4 2 9
10 1
7 8 8 9

提示

约束条件

  • 1N1000001 \leq N \leq 100\,000
  • 1M1091 \leq M \leq 10^9
  • 1KN1 \leq K \leq N
  • 1Li1091 \leq L_i \leq 10^91iN1 \leq i \leq N

子任务

  1. (4 分)N1000N \leq 1\,000M1000M \leq 1\,000
  2. (10 分)K=1K = 1
  3. (32 分)M100000M \leq 100\,000
  4. (54 分)无额外约束条件