#include <bits/stdc++.h>
#define rep(i, p, k) for (int i = (p); i < (k); ++i)
#define all(v) (v).begin(), (v).end()
#define ll long long
#define fi first
#define sc second
#ifndef DEBUG
#define debug(...)
#else
#include "debug.h"
#endif
using namespace std;
int main() {
cin.tie(0)->sync_with_stdio(0);
int n, k;
cin >> n >> k;
int r = 0;
vector<int> h(n);
for (auto &v : h)
cin >> v;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int m = 0;
if (j)
m = max(m, h[j - 1]);
if (j != n - 1)
m = max(m, h[j + 1]);
if (h[j] + k < m) {
r += m - h[j] - k;
h[j] = m - k;
}
}
}
cout << r << '\n';
}
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 | #include <bits/stdc++.h> #define rep(i, p, k) for (int i = (p); i < (k); ++i) #define all(v) (v).begin(), (v).end() #define ll long long #define fi first #define sc second #ifndef DEBUG #define debug(...) #else #include "debug.h" #endif using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int n, k; cin >> n >> k; int r = 0; vector<int> h(n); for (auto &v : h) cin >> v; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int m = 0; if (j) m = max(m, h[j - 1]); if (j != n - 1) m = max(m, h[j + 1]); if (h[j] + k < m) { r += m - h[j] - k; h[j] = m - k; } } } cout << r << '\n'; } |
English