#codefestival2015okinawaj. [code_festival_2015_okinawa_j]Jungle

[code_festival_2015_okinawa_j]Jungle

问题

Wolf Sothe拥有丛林中的一块长土地。在这条线性土地上,有NN棵树以固定间隔生长。从一端开始,第ii棵树的大小给定为tit_i

由于树木阻碍阳光进入丛林,所以为了让阳光照射到丛林中,Wolf Sothe考虑砍伐其中一些树木(或者不砍伐)。具体来说,根据以下规则砍伐树木:

  • 最多可以砍伐MM棵树(不超过MM棵)。
  • 考虑到对周围生态系统的影响,不允许在任意KK连续的树木中砍伐两棵或更多的树木。更确切地说,不存在i(1iNK+1)i(1≦i≦N-K+1),使得从一端开始的第ii棵、(i+1)(i + 1)棵、......、(i+K1)(i + K-1)棵树中有22棵或更多的树木被砍伐。
  • 如果Wolf Sothe砍伐从一端开始的第ii棵树,那么该树的大小tit_i变为00
  • 我们希望KK棵连续树木大小之和的最大值尽可能小。换句话说,我们希望最小化![](/img/other/code_festival_2015_okinawa/vfgagrt/J1.png)。

给定了NN棵树的大小以及MMKK的值,当我们对树木进行最佳砍伐选择时,请计算连续KK棵树之和的最大值的最小值。


输入

输入将通过标准输入给出,格式如下:

NN MM KK t1t_1 t2t_2 : tNt_N

  • 第一行为三个整数,用空格分隔:N(1N100,000)N(1≦N≦100,000)M(1MN)M(1≦M≦N)K(1KN)K(1≦K≦N)
  • 接下来的NN行为额外的NN个整数,表示树木的大小。第ii行的整数ti(1ti1,000,000,000)t_i(1≦t_i≦1,000,000,000)表示第ii颗树木的大小。

输出

请在一行中输出对树木进行最佳砍伐选择时,连续KK棵树之和的最大值的最小值。

输出结束时换行。


输入示例 1


6 2 3
1
5
6
2
4
3

输出示例 1


7

如果Wolf Sothe砍伐第33棵和第66棵树,那么连续33棵树之和的最大值的最小值将在第22棵、第33棵、第44棵树时取得。树木大小的总和为5+0+2=75+0+2=7


输入示例 2


10 3 4
3
14
1
5
9
2
6
5
3
5

输出示例 2


17