#P005875. 生产调度

    ID: 5875 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>24-9-B组月赛T4动态规划基础普及/提高−

生产调度

当前没有测试数据。

题目描述

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

工厂有 MM 个可用的生产时段,第 ii 个时段从第 SiS_i 小时开始,到第 EiE_i 小时结束。在这个时段内,机器能够生产 CiC_i 个单位的产品。

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

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

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

输入格式

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

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

输出格式

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

样例

输入

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

输出

58

数据范围

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

对于 100%100\% 的测试数据,满足 1N1061 \le N \le 10^61M1031 \le M \le 10^31Si<EiN1 \le S_i < E_i \le N1Ci1061 \le C_i \le 10^6