工作安排
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
农夫约翰有很多工作需要完成。每项工作都恰好花费一个单位时间,完成后可以获得对应收益。
他的工作日从时刻 开始,共有 个单位时间。现在有 项工作,第 项工作的截止时间为 ,收益为 。只有在截止时间之前或恰好在截止时间完成该工作,才能获得收益。
任意一个单位时间内只能完成一项工作,每项工作最多完成一次。你可以自行选择要完成的工作及其顺序。
请计算约翰最多能够获得多少收益。答案可能超过 32 位有符号整数的范围。
文件读写要求
本题必须从 work.in 读取输入,并将答案写入 work.out。文件名区分大小写。
C++ 程序可在 main 函数开始处使用:
freopen("work.in", "r", stdin);
freopen("work.out", "w", stdout);
输入格式
第一行一个整数 。
接下来 行,每行两个整数 ,分别表示一项工作的截止时间和收益。
输出格式
输出一个整数,表示最大总收益。
样例输入
3
2 10
1 5
1 7
样例输出
17
样例解释
在时刻 到 完成第 项工作,在时刻 到 完成第 项工作,获得收益 。
数据范围
对于全部数据,,。
共 25 个点,每点 4 分:
| 测试点 | 额外限制 |
|---|---|
| 1~5 | |
| 6~10 | |
| 11~25 | 无额外限制 |
时间限制 2 秒,内存限制 256 MiB,使用文件读写。