#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define FOR(i,a,b) for (__typeof(b) i = a; i < b; ++i)
#define FORev(i,a,b) for(__typeof(a) i = a; i >= b; --i)
#define c(x) cin >> x;
#define elif else if
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
ll n,k; c(n); c(k);
vector<ll> tab(n);
for (auto& x : tab) c(x);
ll res = 0;
FOR(i,0,n-1){
ll tmp = abs(tab[i]-tab[i+1]);
if (tmp <= k)
continue;
elif (tab[i] > tab[i+1])
tab[i+1] += (tmp-k);
else
tab[i] += (tmp-k);
res += tmp-k;
}
FORev(i,n-1,1){
ll tmp = abs(tab[i]-tab[i-1]);
if (tmp <= k)
continue;
elif (tab[i] > tab[i-1])
tab[i-1] += (tmp-k);
else
tab[i] += (tmp-k);
res += tmp-k;
}
cout << res << "\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 | #include <bits/stdc++.h> using namespace std; typedef long long ll; #define FOR(i,a,b) for (__typeof(b) i = a; i < b; ++i) #define FORev(i,a,b) for(__typeof(a) i = a; i >= b; --i) #define c(x) cin >> x; #define elif else if signed main(){ ios::sync_with_stdio(0); cin.tie(0); ll n,k; c(n); c(k); vector<ll> tab(n); for (auto& x : tab) c(x); ll res = 0; FOR(i,0,n-1){ ll tmp = abs(tab[i]-tab[i+1]); if (tmp <= k) continue; elif (tab[i] > tab[i+1]) tab[i+1] += (tmp-k); else tab[i] += (tmp-k); res += tmp-k; } FORev(i,n-1,1){ ll tmp = abs(tab[i]-tab[i-1]); if (tmp <= k) continue; elif (tab[i] > tab[i-1]) tab[i-1] += (tmp-k); else tab[i] += (tmp-k); res += tmp-k; } cout << res << "\n"; } |
English