2875 - 生产调度

题目描述

某工厂正在进行生产调度,工厂的机器可以在接下来的 N 个小时内进行工作。

工厂有 M 个可用的生产时段,第 i 个时段从第 S_i 小时开始,到第 E_i 小时结束。在这个时段内,机器能够生产 C_i 个单位的产品。

由于机器每次工作后需要冷却一段时间,厂长规定,如果本次生产在第 E_i 小时结束,那么下一次的生产的开始时间 S_{i+1} 和本次生产时间的结束时间 E_i 的差值,要满足 S_{i+1} - E_i \ge T ,以保证机器有充分的时间散热,不会因为连续生产导致损坏。

你的任务是帮助工厂安排生产时段,使得在这 N 个小时内,工厂能够生产的产品总量最大。

你只需编程计算出,工厂在这 N 个小时内,最多可以生产多少个单位的产品。

输入

第一行包含三个整数 NMT,分别表示总的生产时长、可用的生产时段数和机器的冷却时间。

接下来 M 行,每行包含三个整数 S_iE_iC_i,表示第 i 段生产时段的起始小时、结束小时以及在该时段内能够生产的产品数量。

输出

输出一个整数,表示工厂在 N 个小时内能够生产的最大产品总量。

样例

输入

20 5 2
1 2 8
10 15 10
4 6 30
7 10 35
16 20 15

输出

58

输入

90 10 5
55 80 5
74 84 26
42 57 29
40 64 8
48 57 5
43 58 27
62 81 30
1 59 46
17 38 28
80 83 29

输出

84

输入

200 20 15
56 152 93
118 196 35
190 193 96
184 189 54
73 193 66
155 165 50
92 96 91
45 153 33
158 165 9
166 186 22
157 164 66
181 196 33
173 194 83
135 199 77
113 147 37
54 100 54
105 165 97
140 146 11
124 158 70
37 163 54

输出

257
说明

样例 1 解释

共有 20 个小时可以生产,有 5 个可用的生产时段。

先选择第 1 个时段 [1,2],生产 8 个产品。

再选择第 4 个时段 [7,10],生产 35 个产品。

再选择第 5 个时段 [16,20],生产 15 个产品。

共计生产 58 个产品。

数据范围:

对于 40\% 的测试数据,满足 1 \le N \le 10001 \le M \le 100

对于 100\% 的测试数据, 满足 1 \leq N \leq 10^61 \leq M \leq 10^31 \leq S_i < E_i \leq N1 \leq C_i \leq 10^6

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 1 枚
难度 基础


上一题 下一题