#include<bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, max_difference, res = 0, i;
bool IsCorect = false;
cin >> n >> max_difference;
vector<int> path(n);
for(i = 0; i < n; ++i)
cin >> path[i];
while(!IsCorect) {
IsCorect = true;
for(i = 1; i < n; ++i) {
if(abs(path[i-1] - path[i]) > max_difference) {
IsCorect = false;
if(path[i-1] < path[i]) {
res += path[i] - max_difference - path[i-1];
path[i-1] = path[i]- max_difference;
}
else {
res += path[i-1] - max_difference - path[i];
path[i] = path[i-1] - max_difference;
}
}
}
}
cout << res;
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 | #include<bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, max_difference, res = 0, i; bool IsCorect = false; cin >> n >> max_difference; vector<int> path(n); for(i = 0; i < n; ++i) cin >> path[i]; while(!IsCorect) { IsCorect = true; for(i = 1; i < n; ++i) { if(abs(path[i-1] - path[i]) > max_difference) { IsCorect = false; if(path[i-1] < path[i]) { res += path[i] - max_difference - path[i-1]; path[i-1] = path[i]- max_difference; } else { res += path[i-1] - max_difference - path[i]; path[i] = path[i-1] - max_difference; } } } } cout << res; return 0; } |
English