题目描述
调度站依次收到 个任务,输入顺序即到来顺序;任务 的截止时刻为 ,报酬为 ,加工时长为 。你手里有 点操作额度,对每个到来的任务必须立即二选一:
- 接单:把它放入保留集合,不消耗额度;
- 拒单:放弃它,消耗 点额度。
已接入的任务还可以随时退掉(包括恰好在某个检查点之前),每退掉一个任务同样消耗 点额度。系统在每轮处理结束后做一次产能检查:处理完第 个到来的任务时,保留集合的大小不能超过 (被退掉的任务不计入)。
每个被排除在保留集合之外的任务,无论当初拒单还是事后退货,都至少消耗 点额度;而只对被排除的每个任务各操作一次,就恰好消耗 减保留个数的额度。求最终保留任务报酬总和的最大值;若每个合法方案的额度消耗都超过 ,输出 。
输入格式
第一行两个整数 。
接下来 行,第 行两个整数 。
输出格式
一行一个整数:最大报酬总和,或 。
样例 1
样例
输入
4 1 2 10 2 1 2 9 3 100
输出
119
拒掉任务 (消耗 点额度),保留任务 :各检查点保留个数依次为 、、、,额度消耗 ,报酬总和 。
样例 2
输入
3 0 1 5 1 6 1 7
输出
-1
三个任务截止时刻都是 ,任何时刻保留个数至多 ,至少要排除 个任务、消耗 点额度,超过 ,故无合法方案。
数据范围
;;;。答案可能超过 位整数范围。