题目描述
自习课的验算环节: 很小的一组任务,第 个任务占用一个时段、截止时段为 、报酬为 ,每个时段恰好完成一个任务。
对照机内部按如下固定流程输出两行结果,你要做的是把这套流程实现出来:
- 把任务按截止时段升序排列,截止相同的按输入编号升序;
- 依次逐个入选:任务先进入保留集合;若保留集合中的任务数超过当前任务的截止时段,发生一次反悔——退掉集合中报酬最低的任务(报酬相同时退编号最小的),反悔计数加一;
- 第一行输出保留集合的报酬总和;第二行输出反悔总次数。
第一行的数值恰等于所有可行选法(每个任务都能在各自截止时段前完成的选法)中报酬总和的最大值,因此 时可以用全枚举逐一对照验证。
输入格式
第一行一个整数 。
接下来 行,第 行两个整数 (顺序任意)。
输出格式
两行,各一个整数,含义如上。
样例 1
样例
输入
4 3 100 2 6 2 5 2 8
输出
114 1
排序后处理顺序为 :入选编号 (截止 )时保留数 超过 ,退掉报酬最低的编号 (报酬 ),反悔一次;最终保留 ,报酬 ,与全枚举的最大值一致。
样例 2
输入
3 2 8 2 6 1 5
输出
14 1
排序后处理顺序为 :入选编号 时保留数 超过 ,退掉编号 (报酬 );保留 ,报酬 。
数据范围
;;。