#S2026F1. [CSP-S 2026 模拟一] 截止检修(schedule)

    ID: 3031 传统题 文件IO:schedule 2000ms 256MiB 尝试: 1 已通过: 0 难度: 3 上传者: 标签>基础算法贪心动态规划优化优先队列CSP-S2026全真模拟

[CSP-S 2026 模拟一] 截止检修(schedule)

题目描述

机房共有 nn 个检修任务。第 ii 个任务需要连续执行 tit_i 个单位时间,并要求在时刻 did_i 之前(含 did_i)完成。

所有任务都在时刻 00 时已经可以开始;同一时刻只能执行一个任务;一旦开始某个任务,就不能中途暂停。你可以只选择其中一部分任务,并自行决定被选任务的执行顺序。

如果一个被选择的任务在自己的截止时刻之前完成,则称该任务被按时完成。你的方案必须保证所有被选择的任务都能按时完成。

请你求:

  1. 最多能够按时完成多少个任务;
  2. 在完成任务数最多的所有方案中,被选择任务的总执行时间最小是多少。

输入格式

第一行一个整数 nn。

接下来 nn 行,第 ii 行两个整数 ti,dit_i,d_i,分别表示任务执行时间和截止时刻。

输出格式

输出两个整数,分别表示最多完成的任务数,以及在此条件下最小的总执行时间。

样例

5
4 5
3 6
2 6
6 12
1 12
4 12

样例解释

例如选择执行时间为 3,2,6,13,2,6,1 的四个任务,并按截止时刻从小到大执行,可以在各自截止时刻前完成,总执行时间为 1212。

不存在能够按时完成全部五个任务的方案。

数据范围

  • 1≤n≤2×1051\le n\le 2\times 10^5;
  • 1≤ti≤1091\le t_i\le 10^9;
  • 1≤di≤10181\le d_i\le 10^{18}。
测试点 分值 特殊限制
1--2 20 n≤20n\le 20
3--5 30 对所有任务均有 ti=1t_i=1
6--10 50 无额外限制