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
49
50
51
52
53
54
55
56
57
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,p,k) for(int i=(p); i<=(k); ++i)
#define FORL(i,p,k) for(long long i=(p); i<=(k); ++i)
#define RFOR(i,p,k) for(int i=(p); i>=(k); --i)
#define REP(i,k) FOR(i,0,(k)-1)
#define FORC(i,c,in) for(i; c; in)
#define FORPWK(pw,k,cond) for(int pw = 1, k = 1; cond; pw *= 2, ++k)
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).end(), (x).begin()
#define siz(x) int((x).size())
#define f first
#define s second
#define v vector
#define pb push_back
#define eb emplace_back
#define C const
typedef long long ll;
typedef v<int> vi;
typedef C int ci;
typedef C ll cll;
typedef pair<int, int> pii;
template<typename T>
using V = vector<T>;

inline void solve(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n, k;
    cin >> n >> k;

    V<int> a(n), b;
    REP(i, n){
		cin >> a[i];
		}
		
    b = a;
    FOR(i, 1, n - 1){
		b[i] = max(b[i], b[i - 1] - k);
		}
		
    RFOR(i, n - 2, 0){
		b[i] = max(b[i], b[i + 1] - k);
		}

    int wyn = 0;
    REP(i, n){
		wyn += b[i] - a[i];
		}

    cout << wyn << "\n";
}

signed main(){
    int tt = 1;
    while(tt--) solve();
}