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
#include<iostream>
using namespace std;
int T[1001];
void print(int n){
    for(int i=0; i<n; i++){
        cout<<T[i]<<" ";
    }
    cout<<endl;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, k;
    cin>>n>>k;
    int max_idx=0;
    for(int i=0; i<n; i++){
        cin>>T[i];
        max_idx = T[max_idx]>T[i]?max_idx:i;
    }
    int dowoz = 0;
    for(int i=max_idx-1; i>=0; i--){
        int roznica = abs(T[i+1] - T[i]);
        //cout<<"Debug "<<T[i+1]<<" - "<<T[i]<<endl;
        int potrzebne = roznica-k>0?roznica-k:0;
        T[i]+=potrzebne;
        dowoz+=potrzebne;
        //cout<<"Debug <-: "<<potrzebne<<endl;
        //print(n);
    }
    for(int i=max_idx+1; i<n; i++){
        int roznica = abs(T[i-1] - T[i]);
        //cout<<"Debug "<<T[i]<<" - "<<T[i+1]<<endl;
        int potrzebne = roznica-k>0?roznica-k:0;
        T[i]+=potrzebne;
        dowoz+=potrzebne;
        //cout<<"Debug ->: "<<potrzebne<<endl;
        //print(n);
    }
    cout<<dowoz;

}