【cofun1025】工作安排
Description
为了让农场有效运转,约翰必须靠自己工作来赚钱。他接到了N项任务,完成每项任务 都要花费一个单位的时间。第i项任务的截止时间为Di,如果能按时完成,可以得到报酬Pi。 约翰从0时刻开始工作,由于他在同一个时间内只能从事一项任务,所以他很难按时完成所 有任务。请帮助约翰计算一下,他最多可以赚多少钱?
Input Format
第一行:单个整数:N,1 ≤ N ≤ 10^5 第二行到N + 1行:在第i + 1行有两个用空格分开的整数:Di和Pi,1 ≤ Di, Pi ≤ 10^9
Output Format
第一行:单个整数,表示约翰可赚得的最多钱
Sample Input
3
2 10
1 5
1 7
Sample Output
17
Hint
先做第三个任务,再做第一个任务
Source
USACO 2009 Open
分析:
贪心 + 优先队列
- 按时间排序工作。
- 当枚举到第i个工作时,如果时间足够,就直接完成;
如果时间不够,则与前面完成的工作中报酬最少的比较,若该工作报酬更多