#task. 训练任务安排(task)
训练任务安排(task)
训练任务安排(task)
题目描述
灵域训练营为小刘准备了一批训练任务。这些任务包含体能训练、反应训练、灵力控制训练、战术判断训练等多种内容。
一共有 个训练任务。第 个任务有两个信息:
- 完成这个任务需要 分钟;
- 这个任务最晚必须在第 分钟结束。
小刘可以自由决定任务的完成顺序,也可以选择放弃部分任务。但是训练营有严格规定:
- 同一时间只能进行一个任务;
- 一旦开始某个任务,就必须连续完成,不能中途暂停;
- 如果某个任务的完成时间晚于它规定的最晚结束时间,则这个任务不能算作成功完成;
- 没有被选择的任务不需要考虑完成时间。
小刘希望在有限的训练安排中,尽可能多地完成任务。
请你帮助小刘计算:他最多可以成功完成多少个训练任务。
输入格式
输入文件:task.in
第一行输入一个整数 ,表示训练任务数量。
接下来 行,每行输入两个整数 ,分别表示第 个任务所需时间和最晚完成时间。
输出格式
输出文件:task.out
输出一个整数,表示最多可以成功完成的任务数量。
样例
5
3 5
2 6
4 7
1 3
2 8
4
样例说明
共有 个训练任务:任务 需要 分钟,最晚第 分钟完成;任务 需要 分钟,最晚第 分钟完成;任务 需要 分钟,最晚第 分钟完成;任务 需要 分钟,最晚第 分钟完成;任务 需要 分钟,最晚第 分钟完成。
小刘可以选择其中 个任务,并安排合适的顺序完成它们。因此最多可以完成的任务数量为 。
数据范围
对于 的数据:,。
对于 的数据:,。
对于 的数据:,。
提交要求
本题使用文件输入输出。C++ 程序可使用:
freopen("task.in", "r", stdin);
freopen("task.out", "w", stdout);