源程序名称:bridge.cpp
输入文件:bridge.in
输出文件:bridge.out
问题描述:
桥的长度为L,现在要给桥上方搭上防雨棚。防雨布是量产的,长度相同,每个长度都为W。
桥上的每个位置以它距离桥最左边的距离决定。比如说,某个防雨布最左边在x,(0≤x≤L-W)就是说距离桥的最左边距离为x,它覆盖的范围是[x,x+W](包含两个端点)。
已知桥上已有N个防雨布,第i个防雨布最左边的位置为a_i.
还需要在桥上放多少防雨布,才能把桥全部覆盖?也就是说,对于桥上任意位置,上面都有防雨布?(包括两个端点,0和L)
数据范围:
所有的输入都是整数
1≤N≤〖10〗^5
1≤W≤L≤〖10〗^18
0≤a_1<a_2<⋯<a_N≤L-W
输入:
N L W
a_1 ...a_N
输出:
还需要多少防雨布?
样例输入1:
2 10 3
3 5
样例输出1:
2
样例解释:
在位置0和7放置防雨布,所以还需要2个
样例输入2:
5 10 3
0 1 4 6 7
11111111100
样例输出2:
0
样例输入3:
12 1000000000 5
18501490 45193578 51176297 126259763 132941437 180230259 401450156 585843095 614520250 622477699 657221699 896711402
样例输出3:
199999992
求解!拜托了!