#include<cstdio>
#include<cstring>
#include<string>
#include<string.h>
#include<cmath>
#include<algorithm>
#include<iostream>
#define ll long long
using namespace std;
int a[2010];
int n, d;
int main(){
scanf("%d%d", &n, &d);
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
int ans = 0;
for(int i = 1; i <= n; i++){
if(a[i] <= a[i-1]){
int temp = (a[i-1] - a[i] + d) / d;
a[i] = a[i] + temp*d;
ans += temp;
}
}
cout << ans << endl;
return 0;
}
A sequence a0, a1, ..., at - 1 is called increasing if ai - 1 < ai for each i: 0 < i < t.
You are given a sequence b0, b1, ..., bn - 1 and a positive integer d. In each move you may choose one element of the given sequence and add d to it. What is the least number of moves required to make the given sequence increasing?
The first line of the input contains two integer numbers n and d (2 ≤ n ≤ 2000, 1 ≤ d ≤ 106). The second line contains space separated sequence b0, b1, ..., bn - 1 (1 ≤ bi ≤ 106).
Output the minimal number of moves needed to make the sequence increasing.
4 2 1 3 3 2
3