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