#P10978. Fence

Fence

Fence

  • 时间限制:1 秒
  • 内存限制:512 MiB

题目描述

一支由 kk 名工人组成的团队需要粉刷一堵含有 NN 块木板的围栏,木板从左到右编号为 11NN

工人 ii 坐在木板 SiS_i 前。他可以不工作;若工作,则只能粉刷一个包含 SiS_i 的连续非空区间,且区间长度不超过 LiL_i。他每粉刷一块木板可获得 PiP_i 美元。每块木板至多由一名工人粉刷,所有 SiS_i 两两不同。

请为每名工人确定粉刷区间,使总收入最大。你不必粉刷全部木板。

输入格式

第一行输入两个正整数 N,kN,k。接下来 kk 行,第 ii 行输入三个正整数 Li,Pi,SiL_i,P_i,S_i

输出格式

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

样例输入

8 4
3 2 2
3 2 3
3 3 5
1 1 7

样例输出

17

数据范围

对于所有数据,1N160001\le N\le160001k1001\le k\le1001LiN1\le L_i\le N1Pi100001\le P_i\le100001SiN1\le S_i\le N,且所有 SiS_i 两两不同。由此必有 kNk\le N

原题只要求 LiL_i 为正整数;当 Li>NL_i>N 时,将其替换为 NN 不改变任何可行方案,因此这里采用上述等价范围。

子任务编号 分值 特殊限制
1 10 所有 Li=1L_i=1
2 20 k=1k=1
3 30 N100N\le100
4 40 无特殊限制