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
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define all(x) (x).begin(), (x).end()
#define debug(x) cerr << #x << " = " << (x) << '\n'

using pii = pair<int, int>;

void solve(void) {
  int n, k; cin >> n >> k;
  vector<int> a(n);
  set<pii> s;

  for (int i = 0; i < n; i++) {
    cin >> a[i];
    s.insert({a[i], i});
  }

  int ans = 0;
  for (int i = 0; i < n; i++) {
    auto it = prev(s.end());
    auto [val, id] = *it;
    s.erase(it);

    if (id < n - 1) {
      if (val - k > a[id + 1]) {
        ans += (val - k - a[id + 1]);
        pii to_delete = {a[id + 1], id + 1};
        s.erase(to_delete);
        s.insert({val - k, id + 1});
        a[id + 1] = val - k;
      }
    }

    if (0 < id) {
      if (val - k > a[id - 1]) {
        ans += (val - k - a[id - 1]);
        pii to_delete = {a[id - 1], id - 1};
        s.erase(to_delete);
        s.insert({val - k, id - 1});
        a[id - 1] = val - k;
      }
    }
  }
  cout << ans << "\n";  
}

signed main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);

  int t;
  t = 1;
  // cin >> t;
  while (t--) solve();
  return 0;
}