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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import sys

def read_input():
    n, k = map(int, sys.stdin.readline().strip().split())  # Read the first line as an integer
    data = list(map(int, input().split()))  # Read next n line
    return n,k,data
    


def compute(n, k, data):
    number = 0
    for i in range(n-1):
        if data[i] > data[i+1]: # nex est mniejsze
            roznica = data[i] - data[i+1]
            # print(f'roznica {roznica}')
            if roznica > k: # roznica wieksza od k
                dosyp = data[i] - data[i+1] - k # ile dospac do nastepnego
                # print(f'dosp {dosyp}')
                number += dosyp 
                data[i+1] = data[i] - k
        # print (data[i])
    return number


def compute_left(n, k, data):
    number = 0
    for i in range(len(data)-1, 0, -1): 
        if data[i] > data[i-1]: # lew jest mniejsze
            roznica = data[i] - data[i-1]
            # print(f'roznica {roznica}')
            if roznica > k: # roznica wieksza od k
                dosyp = data[i] - data[i-1] - k # ile dospac do nastepnego
                # print(f'dosp {dosyp}')
                number += dosyp 
                data[i-1] = data[i] - k
        # print (data[i])
    return number


n,k,data = read_input()
#print(data)

a = compute(n, k, data)
b = compute_left(n, k, data)

#print (data)

print (a+b)