n, k = map(int, input().split())
tab = list(map(int, input().split()))
mapping_tab = [[] for _ in range(10**6+1)]
for i in range(n):
mapping_tab[tab[i]].append(i)
indexes = []
for i in range(10**6, -1, -1):
for indx in mapping_tab[i]:
indexes.append(indx)
res=0
for i in range(1, n):
if n-1!=indexes[i] and tab[indexes[i]]+k<tab[indexes[i]+1]:
d = tab[indexes[i]+1]-(tab[indexes[i]]+k)
res+=d
tab[indexes[i]]+=d
if 0!=indexes[i] and tab[indexes[i]]+k<tab[indexes[i]-1]:
d = tab[indexes[i]-1]-(tab[indexes[i]]+k)
res+=d
tab[indexes[i]]+=d
# print(*indexes)
# print(*tab)
print(res)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | n, k = map(int, input().split()) tab = list(map(int, input().split())) mapping_tab = [[] for _ in range(10**6+1)] for i in range(n): mapping_tab[tab[i]].append(i) indexes = [] for i in range(10**6, -1, -1): for indx in mapping_tab[i]: indexes.append(indx) res=0 for i in range(1, n): if n-1!=indexes[i] and tab[indexes[i]]+k<tab[indexes[i]+1]: d = tab[indexes[i]+1]-(tab[indexes[i]]+k) res+=d tab[indexes[i]]+=d if 0!=indexes[i] and tab[indexes[i]]+k<tab[indexes[i]-1]: d = tab[indexes[i]-1]-(tab[indexes[i]]+k) res+=d tab[indexes[i]]+=d # print(*indexes) # print(*tab) print(res) |
English