#270. 缆车支柱

缆车支柱

题目描述

科罗拉州的罗恩打算为他的奶牛们建造一个滑雪场,虽然需要的设施仅仅是一部缆车。建造一部缆车,需要从山脚到山顶立若干根柱子,并用钢丝连结它们。你可以认为相对于地面,柱子的高度可以忽略不计。每相邻两根柱子间都有钢丝直接相连。显然,所有钢丝的任何一段都不能在地面之下。

为了节省建造的费用,罗恩希望在工程中修建尽可能少的柱子。他在准备修建缆车的山坡上选定了 nn 个两两之间水平距离相等的点,并且测量了每个点的高度 hih_i。并且,按照国家安全标准,相邻两根柱子间的距离不能超过 kk 个单位长度。柱子间的钢丝都是笔直的。

罗恩希望你帮他计算一下,在满足下列条件的情况下,他至少要修建多少根柱子:首先,所有的柱子都必须修建在他所选定的点上,且每一段钢丝都必须高于地面或者正好跟地面相切。相邻两根柱子的距离不大于 kk 个单位长度。当然,在第一个点与最后一个点上一定都要修建柱子。

输入格式

第一行包含两个整数 n,kn, k,用空格隔开。

接下来 nn 行,每行包含一个整数 hih_i,表示第 ii 个点的高度。

输出格式

输出一行一个整数,表示罗恩最少需要修建的柱子的数目。

13 4
0
1
0
2
4
6
8
6
8
8
9
11
12
5

提示

样例 1 说明

罗恩最少要修建 55 根柱子(分别在第 115577991313 个山坡上的点)。钢丝在 11-5555-7777-99 以及 1212-131344 段上与地面相切。

数据规模与约定

对于全部的测试点,保证 2n50002 \leq n \leq 50001kn11 \leq k \leq n - 10hi1090 \leq h_i \leq 10^9