#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 1003;
int t[MAXN];
bool vis[MAXN];
int32_t main(){
ios_base::sync_with_stdio(0);
int n,k; cin >> n >> k;
for(int i=1;i<=n;i++) cin >> t[i];
int ans=0;
for(int i=1;i<=n;i++){
int najw=0;
for(int j=1;j<=n;j++){
if(!vis[j] && t[j] > t[najw]) najw = j;
}
vis[najw] = true;
if(najw>1 && !vis[najw-1] && t[najw]-t[najw-1]>k) {ans += t[najw]-t[najw-1]-k; t[najw-1] = t[najw]-k;}
if(najw<n && !vis[najw+1] && abs(t[najw]-t[najw+1])>k) {ans += abs(t[najw]-t[najw+1]-k); t[najw+1] = t[najw]-k;}
}
cout << ans;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <bits/stdc++.h> using namespace std; #define int long long const int MAXN = 1003; int t[MAXN]; bool vis[MAXN]; int32_t main(){ ios_base::sync_with_stdio(0); int n,k; cin >> n >> k; for(int i=1;i<=n;i++) cin >> t[i]; int ans=0; for(int i=1;i<=n;i++){ int najw=0; for(int j=1;j<=n;j++){ if(!vis[j] && t[j] > t[najw]) najw = j; } vis[najw] = true; if(najw>1 && !vis[najw-1] && t[najw]-t[najw-1]>k) {ans += t[najw]-t[najw-1]-k; t[najw-1] = t[najw]-k;} if(najw<n && !vis[najw+1] && abs(t[najw]-t[najw+1])>k) {ans += abs(t[najw]-t[najw+1]-k); t[najw+1] = t[najw]-k;} } cout << ans; } |
English