P11273 「Diligent-OI R1 C」DlgtRank

题目描述

给你一个长为 $n$ 的序列 $a_1\sim a_n$。这里定义 $a_i$ 的**排名**为 $a$ 中**严格大于** $a_i$ 的数的个数 $+1$。 现有一些操作来更改 $a$ 中的元素。所有操作之前会事先给你一个常量 $k$。每次操作前,定义 $a_i$ 是**可移动**的,当且仅当**仅将 $a_i$ 的值加上 $k$,其他值不变**后,$a_i$ 的排名不变。否则 $a_i$ 在这次操作是不可移动的。然后这次操作为:将序列中所有可移动的数加上 $k$。 可以证明经过若干次操作后,$a$ 中所有值都会变成可移动的,并且第一次达到这种状态时,后面的操作也会是这种状态。也就是说,无论做多少次操作,$a$ 中每个值为**不可移动**状态的次数是有限的。 现在询问,做足够多次这个操作后,$a$ 中每个值为**不可移动**状态的次数是多少。

输入格式

第一行输入两个整数 $n,k$。 接下来一行,输入 $n$ 个整数 $a_1\sim a_n$ 表示初始时的 $a$ 数列。

输出格式

输出一行 $n$ 个整数。第 $i$ 个整数表示 $a_i$ 在操作过程中为**不可移动**状态的次数。

说明/提示

#### 样例 #1 解释 初始的 $a_1=1,a_2=3,a_3=4$。 操作一次后 $a_1=2,a_2=3,a_3=5$。$a_2$ 不可移动,是因为如果仅将 $a_2$ 加上 $1$,它的排名会由 $2$ 变成 $1$。 操作两次后 $a_1=2,a_2=4,a_3=6$。$a_1$ 不可移动,是因为如果仅将 $a_1$ 加上 $1$,它的排名会由 $3$ 变成 $2$。 操作三次后 $a_1=3,a_2=5,a_3=7$。这次操作所有值都是可移动的了。可以证明再操作任意多次也不会再出现不可移动的状态了。 因此过程中 $a_1$ 有一次不可移动,$a_2$ 有一次不可移动,$a_3$ 没有不可移动的时候。 #### 数据范围与约定 对于 $100\%$ 数据,$1\le n\le2\times10^5$,$1\le k,a_i\le10^9$。 | Subtask 编号 | $n\le$ | 特殊性质 | 分值 | | :----------: | :----------: | :----------: | :----------: | | $0$ | $1$ | ABC | $4$ | | $1$ | $100$ | C | $14$ | | $2$ | $100$ | 无 | $13$ | | $3$ | $3000$ | C | $18$ | | $4$ | $3000$ | 无 | $16$ | | $5$ | $2\times10^5$ | A | $6$ | | $6$ | $2\times10^5$ | BC | $8$ | | $7$ | $2\times10^5$ | C | $7$ | | $8$ | $2\times10^5$ | 无 | $14$ | 特殊性质 A:所有的 $a_i$ 都相等。 特殊性质 B:对于任意的 $i