#B010. 一箭多雕
一箭多雕
【问题描述】
小明喜欢武侠小说,在武侠世界里,他不但练就了一箭双雕的能力,还可以一箭多雕。
现在所有雕在一条直线上从左到右排列,但是他们的高度不同。而小明想要把他们都射 下来。小明使用的是一种特殊的弓箭,他可以将弓箭射到任意一个高度为 的雕,当射中 一个高度为 的雕后,弓箭的高度会下降到 ,再从左到右飞行,直到射到高度为 的大雕,再降低 的高度,直到飞出大雕的队列。
由于弓箭数量有限,小明想要知道,最少用多少的弓箭,就可以射下所有的大雕。
【输入】
第一行一个整数, 表示直线上的大雕数量。
第二行 个整数,表示从左到右每个大雕的高度。
【输出】
输出一个整数,表示最少用的弓箭数量。
【输出输出样例 1】
arrows.in
5
2 1 5 4 3
arrows.out
2
【样例解释】
第一箭射向第一个大雕,射中后高度下降到 ,会射中第二只大雕。
第二箭射向第三个大雕,依次射中高度为 的三只大雕。
【输出输出样例 2】
arrows.in
5
1 2 3 4 5
arrows.out
5
【样例解释】
只大雕,分别使用 个弓箭。
【输出输出样例 3】
arrows.in
5
4 5 2 1 4
arrows.out
3
【样例解释】
第一箭射向第一个大雕,射中后高度下降到 。
第二箭射向第二个大雕,射下高度为 和 的大雕。
第三箭射向第三个大雕,射下高度为 和 的大雕。
【数据范围】
的数据,, 大雕的高度 。
的数据,, 大雕的高度
的数据,, 大雕的高度 。