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
#include <bits/stdc++.h>
#define F(i, a, b) for(int i = a; i <= b; i++)
#define pb push_back
#define be(X) X.begin(), X.end()
#define pii pair<int,int>
#define V vector
#define f first
#define s second
using namespace std;

int tab[1000009];
int tab2[1000009];

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n, k;
    cin >> n >>k;

    F(i, 1, n){
        cin >> tab[i];
        tab2[i] = tab[i];
    }

    F(i, 2, n){
        tab2[i] = max(tab[i], tab2[i-1] - k);
        // cout << tab2[i] << " ";
    }

    for(int i = n-1; i > 0; i--){
        tab2[i] = max(tab2[i], tab2[i+1] - k);
    }

    int wyn = 0;

    F(i, 1, n){
        wyn += tab2[i] - tab[i];
    }

    cout << wyn;

}