2503: 种树
内存限制:256 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:11
解决:5
题目描述
为了绿化乡村,H村积极响应号召,开始种树了。
H村里有n幢房屋,这些屋子的排列顺序很有特点,在一条直线上。于是方便起见,我们给它
们标上1~n。树就种在房子前面的空地上。
同时,村民们向村长提出了m个意见,每个意见都是按如下格式:希望第L i 个房子到第R i 个房
子的房前至少有C i 棵树。
因为每个房屋前的空地面积有限,所以每个房屋前最多只能种K i 棵树。
村长希望在满足村民全部要求的同时,种最少的树以节约资金。现在请你编程帮助村长解决
这个问题。
输入
第1行,包含两个整数n,m。
第2行,有n个整数K i 。
第2~m+1行,每行三个整数L i ,R i ,C i 。
输出
输出一行一个整数,表示在满足村民全部要求的情况下最少要种的树。
样例输入 复制
5 3
1 1 1 1 1
1 3 2
2 4 2
4 5 1
样例输出 复制
3
提示
如图是满足样例的其中一种方案,最少要种3棵树:
【 输 入 样 例 2】
4 3
3 2 4 1
1 2 4
2 3 5
2 4 6
【 输 出 样 例 2】
8
如图是满足样例的其中两种方案,上图的方案需要种9棵树,下图的方案需要种8棵树。
可以验证,最少需要种8棵树。
对于30%的数据, 0<n≤100,0<m≤100,K i =1;
对于50%的数据, 0<n≤2000,0<m≤5000,0
对于70%的数据, 0<n≤50000,0<m≤100000,0
对于100%的数据,0<n≤500000,0<m≤500000,0