#DMY25S1703. 栅栏

栅栏

栅栏

文件与限制

输入文件:fence.in;输出文件:fence.out。

时间限制:1 秒;空间限制:128 MiB。使用 C++14 O2。

题目描述

栅栏由 nn 块宽度为 11 的木板组成,第 ii 块的高度为 hih_i。

小 L 有一个宽度为 xx 的滚筒,希望先用滚筒刷尽可能多的油漆,剩余部分再用刷子涂。他不希望滚筒一部分接触栅栏、另一部分不接触。

因此,每次操作选择一段恰好包含 xx 块连续木板的区间,从底部向上涂色,直到这 xx 块木板中的最小高度。一个地方可以被重复涂色,面积只计算一次。

请输出最多能用滚筒涂色的面积,以及在达到这个最大面积的前提下,最少需要的操作次数。

输入格式

第一行两个整数 n,xn,x。第二行 nn 个整数 h1,h2,…,hnh_1,h_2,\ldots,h_n。

输出格式

输出两行,每行一个整数:第一行为最大面积,第二行为最少操作次数。

样例 1

5 2
1 2 4 2 3
9
3

分别选择 [4,5][4,5]、[2,3][2,3]、[1,2][1,2],即可使各木板的涂色高度达到 1,2,2,2,21,2,2,2,2。

样例 2

见附加文件 samples.zip 中的 ex_fence2.in/out。

数据范围

对于全部数据,1≤n≤2×1051\le n\le2\times10^5,1≤x≤n1\le x\le n,1≤hi≤1091\le h_i\le10^9。

测试点 额外限制
1~4 n≤10n\le10
5~10 n≤1000,x≤min⁡(n,10)n\le1000,x\le\min(n,10)
11~15 n≤1000n\le1000
16~20 无