Processing math: 100%
编程题
                ### 问题描述

小蓝有一个 n 天的假期,他打算用这 n 天清理房间。在仓库里有 n 个清洁工具可以选择,这些工具从 1n 编号,小蓝使用编号为 i 的工具可以使房间的清洁值增加 ai

但是,使用编号为 i 的工具也会使当天小蓝的劳累值为 ai 。小蓝有一个劳累承受极限值 m ,当第 i 天小蓝的劳累值超过 m 时,那么小蓝在那天之后的 d 天就必须休息( 即小蓝在第 i+1,i+2,.,min 里必须休息)。

小蓝每天可以选择一个任意编号的清洁工具进行清理房间,但是,因为这些工具都是一次性的,被选择过的工具不能再次选择,且小蓝每天只能使用一个工具。

小蓝想请你帮助他,他应当如何安排清理房间的工作,才能使这 n 天后房间的清洁值最大(房间的清洁值初始时为 0 )。

输入格式

第一行包含三个整数 n,d,m ,分别表示小蓝清理房间的天数(以及清洁工具的个数),小蓝每次劳累值超过极限后必须休息的天数,和小蓝的劳累极限值。

第二行包含 n 个整数 a_1,a_2,…,a_n ,表示不同编号的工具的清洁值。

输出格式

输出一个整数,表示 n 天后房间清洁值的最大值。

样例输入

5 2 11
8 10 15 23 5

样例输出

48

评测数据规模

对于所有评测数据, 1\leq{d}\leq{n}\leq{10^5 },0\leq{m}\leq{10^9 },0\leq{a_i}\leq{10^9 }

查看答案
赣ICP备20007335号-2