#include <bits/stdc++.h>
using namespace std;
#define st first
#define nd second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define BOOST ios_base::sync_with_stdio(0), cin.tie(0)
template<typename T>
using vc = vector<T>;
using ll = long long;
using ld = long double;
using ii = pair<int, int>;
int main(){
BOOST;
int n, k;
cin >> n >> k;
vc<ll> t(n+2);
for(int i=1; i<=n; i++) cin >> t[i];
ll ans = 0;
for(int i=1; i<=n; i++){
if(t[i-1] - t[i] > k){
ll zwir = t[i-1] - t[i] - k;
ans += zwir;
t[i] += zwir;
}
}
for(int i=n; i>=1; i--){
if(t[i+1] - t[i] > k){
ll zwir = t[i+1] - t[i] - k;
ans += zwir;
t[i] += zwir;
}
}
cout << ans << "\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 37 38 | #include <bits/stdc++.h> using namespace std; #define st first #define nd second #define pb push_back #define all(x) (x).begin(), (x).end() #define BOOST ios_base::sync_with_stdio(0), cin.tie(0) template<typename T> using vc = vector<T>; using ll = long long; using ld = long double; using ii = pair<int, int>; int main(){ BOOST; int n, k; cin >> n >> k; vc<ll> t(n+2); for(int i=1; i<=n; i++) cin >> t[i]; ll ans = 0; for(int i=1; i<=n; i++){ if(t[i-1] - t[i] > k){ ll zwir = t[i-1] - t[i] - k; ans += zwir; t[i] += zwir; } } for(int i=n; i>=1; i--){ if(t[i+1] - t[i] > k){ ll zwir = t[i+1] - t[i] - k; ans += zwir; t[i] += zwir; } } cout << ans << "\n"; } |
English