#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
int n, k;
int a[1000];
long long res=0;
cin >> n >> k;
for (int i=0; i<n; i++) cin >> a[i];
for (int i=1; i<n; i++) {
int diff = abs(a[i-1]-a[i]);
if (diff > k) {
res += diff - k;
if (a[i-1] > a[i]) a[i] = a[i-1] - k;
else {
a[i-1] = a[i] - k;
for (int j=i-1; j>0; j--) {
diff = a[j]-a[j-1];
if (diff <= k) break;
res += diff - k;
a[j-1] = a[j] - k;
}
}
}
}
cout << res << endl;
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 | #include <iostream> using namespace std; int main(int argc, char const *argv[]) { int n, k; int a[1000]; long long res=0; cin >> n >> k; for (int i=0; i<n; i++) cin >> a[i]; for (int i=1; i<n; i++) { int diff = abs(a[i-1]-a[i]); if (diff > k) { res += diff - k; if (a[i-1] > a[i]) a[i] = a[i-1] - k; else { a[i-1] = a[i] - k; for (int j=i-1; j>0; j--) { diff = a[j]-a[j-1]; if (diff <= k) break; res += diff - k; a[j-1] = a[j] - k; } } } } cout << res << endl; return 0; } |
English