#D0897. 相邻补点

相邻补点

题目描述

小 B 正在整理一串从高到低排列的能量刻度。相邻两个刻度之间如果差距太大,就需要在它们之间补上一些新的刻度。

给定一个正整数 kk。整理完成后,任意相邻两个刻度的差都不能超过 kk

现在给出原来的 nn 个刻度,保证它们严格递减。小 B 可以在任意相邻两个原刻度之间插入任意多个整数刻度,且插入后整串刻度仍然严格递减。

请你求最少需要插入多少个刻度。

输入格式

第一行两个整数 n,kn,k,表示原有刻度数量和允许的最大相邻差。

第二行 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示原来的刻度。

输出格式

输出一个整数,表示最少需要插入的刻度数量。

样例

4 3
20 14 10 8
2
5 5
30 25 20 15 10
0
3 4
25 13 1
4

样例解释

样例 1 中,20201414 相差 66,可以插入 171714141010 相差 44,可以插入 1212;其余相邻差不超过 33,所以最少插入 22 个刻度。

样例 2 中,所有相邻差都等于 55,不需要插入。

样例 3 中,25251313 之间最少插入 22 个数,131311 之间最少插入 22 个数,总共 44 个。

数据范围与约定

子任务 分值 限制
11 3030 n=2n=2
22 7070 无特殊限制

对于 100%100\% 的数据,保证 2n1000002 \leq n \leq 1000001k1091 \leq k \leq 10^91an<<a2<a11091 \leq a_n < \cdots < a_2 < a_1 \leq 10^9