挂了一个点#23
#include<bits/stdc++.h>
using namespace std;
struct aa{
int va,add;
}a[200005];
bool cmp(aa a,aa b){
return a.va>b.va;
}
int main(){
int n,k;
scanf("%d%d",&n,&k);
int ans[200005];
ans[0]=0;
for(int i=0;i<n;i++){
scanf("%d",&a[i].va);
a[i].add=i;
}
sort(a,a+n,cmp);
for(int i=1;i<n;i++){
ans[a[i].add]=a[i].va==a[i-1].va?ans[a[i-1].add]:max(0,ans[a[i-1].add]+1-(a[i-1].va-a[i].va-1)/k);
}
for(int i=0;i<n;i++){
printf("%d ",ans[i]);
}
printf("\n");
return 0;
}