#P11273. 「Diligent-OI R1 C」DlgtRank

「Diligent-OI R1 C」DlgtRank

题目描述

给你一个长为 nn 的序列 a1ana_1\sim a_n。这里定义 aia_i排名aa严格大于 aia_i 的数的个数 +1+1

现有一些操作来更改 aa 中的元素。所有操作之前会事先给你一个常量 kk。每次操作前,定义 aia_i可移动的,当且仅当仅将 aia_i 的值加上 kk,其他值不变后,aia_i 的排名不变。否则 aia_i 在这次操作是不可移动的。然后这次操作为:将序列中所有可移动的数加上 kk

可以证明经过若干次操作后,aa 中所有值都会变成可移动的,并且第一次达到这种状态时,后面的操作也会是这种状态。也就是说,无论做多少次操作,aa 中每个值为不可移动状态的次数是有限的。

现在询问,做足够多次这个操作后,aa 中每个值为不可移动状态的次数是多少。

输入格式

第一行输入两个整数 n,kn,k

接下来一行,输入 nn 个整数 a1ana_1\sim a_n 表示初始时的 aa 数列。

输出格式

输出一行 nn 个整数。第 ii 个整数表示 aia_i 在操作过程中为不可移动状态的次数。

3 1
1 3 4
1 1 0
6 2
1 2 5 6 7 8
4 3 3 2 1 0
8 10
1 14 5 14 19 19 8 10
5 1 4 1 0 0 3 2

提示

样例 #1 解释

初始的 a1=1,a2=3,a3=4a_1=1,a_2=3,a_3=4

操作一次后 a1=2,a2=3,a3=5a_1=2,a_2=3,a_3=5a2a_2 不可移动,是因为如果仅将 a2a_2 加上 11,它的排名会由 22 变成 11

操作两次后 a1=2,a2=4,a3=6a_1=2,a_2=4,a_3=6a1a_1 不可移动,是因为如果仅将 a1a_1 加上 11,它的排名会由 33 变成 22

操作三次后 a1=3,a2=5,a3=7a_1=3,a_2=5,a_3=7。这次操作所有值都是可移动的了。可以证明再操作任意多次也不会再出现不可移动的状态了。

因此过程中 a1a_1 有一次不可移动,a2a_2 有一次不可移动,a3a_3 没有不可移动的时候。

数据范围与约定

对于 100%100\% 数据,1n2×1051\le n\le2\times10^51k,ai1091\le k,a_i\le10^9

Subtask 编号 nn\le 特殊性质 分值
00 11 ABC 44
11 100100 C 1414
22 1313
33 30003000 C 1818
44 1616
55 2×1052\times10^5 A 66
66 BC 88
77 C 77
88 1414

特殊性质 A:所有的 aia_i 都相等。

特殊性质 B:对于任意的 i<ni<n 满足 ai+1=ai+ka_{i+1}=a_i+k

特殊性质 C:对于任意的 iji\neq j 满足 aiaja_i\neq a_j