QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 2048 MB 總分: 100

#11368. 这就是斯巴达!

统计

Primonidas 国王正在组织一场锦标赛,以寻找这片土地上最强大的角斗士。总共有 $N$ 名角斗士来到竞技场,为家乡争夺荣誉和荣耀。每位角斗士开始时都有一定的生命值(vitality)。生命值类似于生命点数,它既反映了角斗士所能承受的伤害量,也代表了他们能造成的伤害量(因为强力打击需要消耗能量)。

锦标赛共包含 $K$ 轮。每一轮中,国王会将角斗士按剩余生命值从小到大排成一列,若生命值相同则随机打破平局。Primonidas 国王认为角斗士真正的实力在于其抗击打能力,因此他命令第一位角斗士(即剩余生命值最低的那位)对第二位角斗士发动最强一击。这一击会从第二位角斗士的生命值中扣除第一位角斗士的生命值。第二位角斗士在受到攻击后,会(使用其扣除后的新生命值)对第三位角斗士发动最强一击,以此类推。这个过程一直重复,直到倒数第二位角斗士对最后一位角斗士发动最强一击(最后一位角斗士不会攻击任何人)。

请注意,在上述过程中,角斗士的生命值永远不会低于零。(生命值为零的角斗士对下一位角斗士造成的打击微不足道,不造成任何伤害。)

请输出 $K$ 轮锦标赛结束后,每位角斗士的生命值,按当前队列中从第一位到最后一位的顺序排列。

输入格式

第一行包含两个空格分隔的整数 $N$ ($2 \le N \le 10^5$) 和 $K$ ($1 \le K \le 10^{18}$),分别表示角斗士的人数和锦标赛的轮数。

下一行包含 $N$ 个空格分隔的整数 $v_1, v_2, \dots, v_N$ ($0 \le v_i \le 10^{18}$),表示角斗士的初始生命值。

输出格式

输出 $N$ 个空格分隔的整数:锦标赛第 $K$ 轮结束后,角斗士的生命值,按他们当前站立的顺序排列。

样例

样例输入 1

6 3
21 28 24 23 1 12

样例输出 1

1 1 3 6 3 10

样例输入 2

3 1000
8 2 10

样例输出 2

0 0 2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.