#include <bits/stdc++.h>
#define F(i, a, b) for(int i = a; i <= b; i++)
#define pb push_back
#define be(X) X.begin(), X.end()
#define pii pair<int,int>
#define V vector
#define f first
#define s second
using namespace std;
int tab[1000009];
int tab2[1000009];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, k;
cin >> n >>k;
F(i, 1, n){
cin >> tab[i];
tab2[i] = tab[i];
}
F(i, 2, n){
tab2[i] = max(tab[i], tab2[i-1] - k);
// cout << tab2[i] << " ";
}
for(int i = n-1; i > 0; i--){
tab2[i] = max(tab2[i], tab2[i+1] - k);
}
int wyn = 0;
F(i, 1, n){
wyn += tab2[i] - tab[i];
}
cout << wyn;
}
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 | #include <bits/stdc++.h> #define F(i, a, b) for(int i = a; i <= b; i++) #define pb push_back #define be(X) X.begin(), X.end() #define pii pair<int,int> #define V vector #define f first #define s second using namespace std; int tab[1000009]; int tab2[1000009]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >>k; F(i, 1, n){ cin >> tab[i]; tab2[i] = tab[i]; } F(i, 2, n){ tab2[i] = max(tab[i], tab2[i-1] - k); // cout << tab2[i] << " "; } for(int i = n-1; i > 0; i--){ tab2[i] = max(tab2[i], tab2[i+1] - k); } int wyn = 0; F(i, 1, n){ wyn += tab2[i] - tab[i]; } cout << wyn; } |
English