远征补给(supply)

题目描述

DAMON THRONE\text{DAMON THRONE} 的训练队要进行一次远征训练。

远征路线可以看成一条数轴,起点在位置 00,终点在位置 LL

小 D 每次补满能量后,最多可以向前走 DD 个单位距离。起点处能量已经补满,途中有 nn 个补给站,第 ii 个补给站的位置为 pip_i

当小 D 到达某个补给站时,可以选择在这里补满能量。每进入一个补给站补给一次,补给次数加 11

请你求出小 D 从起点走到终点,最少需要补给多少次。

如果无法到达终点,输出 1-1

输入格式

第一行包含三个整数 n,L,Dn,L,D,分别表示补给站数量、终点位置和每次补满后最多能走的距离。

第二行包含 nn 个整数:

p1,p2,,pnp_1,p_2,\ldots,p_n

表示每个补给站的位置。

输出格式

输出一行一个整数。

如果可以到达终点,输出最少补给次数;否则输出 1-1

输入输出样例 #1

输入 #1

5 25 10
6 9 14 20 23

输出 #1

3

样例解释 #1

小 D 可以按照下面的方式前进:

  • 00 出发,走到位置 99 的补给站补给;
  • 99 出发,走到位置 1414 的补给站补给;
  • 1414 出发,走到位置 2323 的补给站补给;
  • 2323 出发,直接到达终点 2525

一共补给 33 次。

输入输出样例 #2

输入 #2

3 30 8
7 16 24

输出 #2

-1

样例解释 #2

从起点 00 出发,最多只能走到位置 88,可以到达位置 77 的补给站。

但是从位置 77 出发,最多只能走到位置 1515,无法到达下一个补给站 1616,因此无法到达终点。

数据范围与约定

对于所有测试数据,保证:

$$0 \le n \le 2\times 10^5,\quad 1 \le D \le L \le 10^9 $$1pi<L1 \le p_i < L

并保证所有补给站位置互不相同。

测试点 分值 nn L,D,piL,D,p_i 特殊性质
121\sim 2 1010 20\le 20 100\le 100
343\sim 4 2020 2000\le 2000 106\le 10^6 A\text{A}
565\sim 6 2×105\le 2\times 10^5 109\le 10^9 B\text{B}
787\sim 8 C\text{C}
9109\sim 10 3030

特殊性质 A\text{A}:保证输入的补给站位置已经按从小到大的顺序给出。

特殊性质 B\text{B}:保证一定可以到达终点。

特殊性质 C\text{C}:保证 DLD\ge L