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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include<bits/stdc++.h>
 
#define pb push_back
#define ppb pop_back
#define eb emplace_back
#define fi first
#define se second
#define turbo ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define mid ((l+r)/2)
#define midLL ((l+r)/2LL)
#define mide ((lo+hi)/2)
#define mideLL ((lo+hi)/2LL)
#define endl '\n'
#define random_shuffle shandom_ruffle
#define lowbit(x) x&(-x)
#define bits(x) __builtin_popcount(x) 
#define mins(se) (*se.begin())
#define maxs(se) (*--se.end())
#define all(x) x.begin(), x.end()
#define log2_floor(i) (i ? __builtin_clzll(1) - __builtin_clzll(i) : -1)
#define siz(cont) ((int)cont.size())
#define each(it, cont) for(auto &it : cont)
#define ein(cont) for(auto &it : cont) cin >> it;
#define mp(a, b) make_pair(a, b)

using ll = long long;
using pii = std::pair<int, int>;
using pll = std::pair<ll, ll>;
using pli = std::pair<ll, int>;
using pil = std::pair<int, ll>;
using vll = std::vector<pll>;
using vii = std::vector<pii>;
using vi = std::vector<int>;
using vl = std::vector<ll>;
using vvl = std::vector<vl>;
using vvi = std::vector<vi>;
using vvii = std::vector<vii>;
using vli = std::vector<pli>;
using vvli = std::vector<vli>;
using vil = std::vector<pil>;
using vvil = std::vector<vil>;
using vc = std::vector<char>;
using vvc = std::vector<std::vector<char>>;
using vb = std::vector<bool>;
using vvb = std::vector<vb>;

#ifdef JDKURWE
void err() { std::cout << "\n"; fflush(stdout); }
template<class T, class... Ts>
void err(T arg, Ts &... args) {
    std::cout << arg << ' ';
    err(args...);
}
#else 
void err() {}
template<class T, class... Ts>
void err(T arg, Ts &... args) {
    err(args...);
}
#endif

using namespace std;

signed main() { 
    turbo;
    int n, k; cin >> n >> k;
    vi v(n);
    ein(v);
    int res = 0;
    for (int i = 1; i < n; i++) {
        if (v[i-1]-v[i] > k) {
            int ch = v[i-1]-v[i]-k;
            v[i] += ch;
            res += ch;
        }
    }
    for (int i = n-2; i >= 0; i--)
        if (v[i+1] - v[i] > k) {
            int ch = v[i+1]-v[i]-k;
            v[i] += ch;
            res += ch;
        }
    cout << res;
}