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 <cstdio>

using namespace std;
#define MAX 1002

int A[MAX];

int main() {
    int n,k,r=0,u;
    scanf("%d %d",&n,&k);
    for(int i=0;i<n;i++) scanf("%d",&A[i]);

    bool update;
    do {
        update = false;
        for(int i=0;i<n-1;i++) {
            if (A[i]>A[i+1]+k) {
                u = A[i] - k - A[i+1];
                A[i+1] +=u;
                r+= u;
                update = true;
//                printf("1u: %d i:%d\n",u,i);
            } 
            if (A[i+1]>A[i]+k) {
                u = A[i+1] - k - A[i];
                A[i] +=u;
                r+= u;
                update = true;
  //              printf("2u: %d i:%d\n",u,i);
            } 
        }
    } while(update);
    printf("%d\n", r);
}