#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define int long long
#define mp make_pair
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n , k;
cin >> n >> k;
vector <int> v(n + 1);
int ans = 0;
bool dziala = true;
for(int i = 1; i <= n; i++)cin >> v[i];
for(int i = 1; i < n; i++)
{
if(abs(v[i] - v[i + 1]) > k)dziala = false;
}
while(!dziala)
{
for(int i = 1; i < n; i++)
{
if(v[i] < v[i + 1])
{
if(v[i + 1] - v[i] <= k)continue;
else
{
int add = v[i + 1] - v[i] - k;
v[i] += add;
ans += add;
}
}
else
{
if(v[i] - v[i + 1] <= k)continue;
int add = v[i] - v[i + 1] - k;
v[i + 1] += add;
ans += add;
}
}
dziala = true;
for(int i = 1; i < n; i++)
{
if(abs(v[i] - v[i + 1]) > k)dziala = false;
}
}
cout << ans;
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include <bits/stdc++.h> using namespace std; #define pb push_back #define int long long #define mp make_pair signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n , k; cin >> n >> k; vector <int> v(n + 1); int ans = 0; bool dziala = true; for(int i = 1; i <= n; i++)cin >> v[i]; for(int i = 1; i < n; i++) { if(abs(v[i] - v[i + 1]) > k)dziala = false; } while(!dziala) { for(int i = 1; i < n; i++) { if(v[i] < v[i + 1]) { if(v[i + 1] - v[i] <= k)continue; else { int add = v[i + 1] - v[i] - k; v[i] += add; ans += add; } } else { if(v[i] - v[i + 1] <= k)continue; int add = v[i] - v[i + 1] - k; v[i + 1] += add; ans += add; } } dziala = true; for(int i = 1; i < n; i++) { if(abs(v[i] - v[i + 1]) > k)dziala = false; } } cout << ans; return 0; } |
English