C. 工作安排

    传统题 文件IO:work 2000ms 256MiB

工作安排

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

农夫约翰有很多工作需要完成。每项工作都恰好花费一个单位时间,完成后可以获得对应收益。

他的工作日从时刻 00 开始,共有 10910^9 个单位时间。现在有 NN 项工作,第 ii 项工作的截止时间为 DiD_i,收益为 PiP_i。只有在截止时间之前或恰好在截止时间完成该工作,才能获得收益。

任意一个单位时间内只能完成一项工作,每项工作最多完成一次。你可以自行选择要完成的工作及其顺序。

请计算约翰最多能够获得多少收益。答案可能超过 32 位有符号整数的范围。

文件读写要求

本题必须从 work.in 读取输入,并将答案写入 work.out。文件名区分大小写。

C++ 程序可在 main 函数开始处使用:

freopen("work.in", "r", stdin);
freopen("work.out", "w", stdout);

输入格式

第一行一个整数 NN。

接下来 NN 行,每行两个整数 Di,PiD_i,P_i,分别表示一项工作的截止时间和收益。

输出格式

输出一个整数,表示最大总收益。

样例输入

3
2 10
1 5
1 7

样例输出

17

样例解释

在时刻 00 到 11 完成第 33 项工作,在时刻 11 到 22 完成第 11 项工作,获得收益 7+10=177+10=17。

数据范围

对于全部数据,1≤N≤1051\le N\le 10^5,1≤Di,Pi≤1091\le D_i,P_i\le 10^9。

共 25 个点,每点 4 分:

测试点 额外限制
1~5 N≤18N\le18
6~10 N≤2000N\le2000
11~25 无额外限制

时间限制 2 秒,内存限制 256 MiB,使用文件读写。

HW CSP复赛模拟一

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-10-8 18:00
结束于
2026-10-8 20:00
持续时间
2 小时
主持人
参赛人数
21