-->
当前位置:首页 > 题库

编程题:差分+树状数组

Luz4年前 (2022-09-06)题库287
一只日本萤火虫飞进了一个充满障碍物的洞穴:石笋(从地板上升起)和钟乳石(从天花板上悬挂)。这个洞穴有$$N$$个单位长(其中$$N$$是偶数),$$H$$个单位高。第一个障碍是石笋,之后钟乳石和石笋交替出现。

下面是一个示例洞穴,长$$14$$个单位,高$$5$$个单位(图像对应于第二个示例):

![213.png](~/280d6391-d765-4c34-8e95-450a50569d28.png)
日本萤火虫不是那种会绕着障碍物飞行的类型,相反,它会选择一个高度,从洞穴的一端猛冲到另一端,以其强大的功夫动作摧毁其路径上的所有障碍物。

![321.png](~/1239a057-41d7-40bb-bf33-a9b8a9fa4aa8.png)

在前面的例子中,从地面选择第四层会让萤火虫摧毁八个障碍物:这不是最好的选择,因为萤火虫如果选择第一层或第五层,最后会不那么累,因为这只需要摧毁七个障碍物。你会得到洞穴的宽度和长度以及所有障碍物的大小。

编写一个程序,确定萤火虫到达洞穴末端需要摧毁的障碍物的最小数量,以及萤火虫可以达到该数量的不同级别。


### 输入格式:
第一行包含两个整数$$N$$和$$H(2≤N≤200000, 2≤H≤500000)$$,表示洞穴的长度和高度。$$N$$永远是均等的。

接下来的$$N$$行包含障碍物的大小,每行一个。所有大小都是小于$$H$$的正整数。
### 输出格式:
在一行上输出两个由一个空格分隔的整数。第一个数字是萤火虫必须摧毁的障碍物的最小数量,第二个数字是可以达到的等级数量。

### 输入样例1:
in
6 7
1
5
3
3
5
1

### 输出样例1:
out
2 3


### 输入样例2:
in
14 5
1
3
4
2
2
4
3
4
3
3
3
2
3
3

### 输出样例2:
out
7 2







答案:若无答案欢迎评论