#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1007;
int h[MAXN];
int min_h[MAXN];
int min_h2[MAXN];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, k;
long long wynik = 0;
cin >> n >> k;
for(int i = 0; i < n; i++){
cin >> h[i];
if(i == 0){
min_h[i] = h[i];
}else{
min_h[i] = max(h[i], min_h[i-1]-k);
}
}
for(int i = n; i >= 0; i--){
if(i == n){
min_h2[i] = h[i];
}else{
min_h2[i] = max(h[i], min_h2[i+1]-k);
}
wynik += (max(min_h[i], min_h2[i]) - h[i]);
}
cout << wynik << "\n";
return 0;
}
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 | #include <bits/stdc++.h> using namespace std; const int MAXN = 1007; int h[MAXN]; int min_h[MAXN]; int min_h2[MAXN]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k; long long wynik = 0; cin >> n >> k; for(int i = 0; i < n; i++){ cin >> h[i]; if(i == 0){ min_h[i] = h[i]; }else{ min_h[i] = max(h[i], min_h[i-1]-k); } } for(int i = n; i >= 0; i--){ if(i == n){ min_h2[i] = h[i]; }else{ min_h2[i] = max(h[i], min_h2[i+1]-k); } wynik += (max(min_h[i], min_h2[i]) - h[i]); } cout << wynik << "\n"; return 0; } |
English