#train26csps001C. 区间降温

区间降温

区间降温

一排 nn 个温度计的初始读数为 a1,a2,…,ana_1,a_2,\ldots,a_n.小宁有 mm 张降温卡,第 jj 张卡写有区间 [lj,rj][l_j,r_j] 和正整数 djd_j.使用这张卡会让编号从 ljl_j 到 rjr_j(包含两个端点)的每个读数都减少 djd_j.每张卡最多使用一次,使用次序不限,也可以一张都不使用.不同卡的区间和降温量可以相同,它们仍然是不同的卡.

最终读数中的最大值与最小值之差称为温差.请你求出最大的可能温差.读数可以为负数;只有一个温度计时温差为 00.

输入格式

第一行输入两个整数 n,mn,m,分别表示温度计和降温卡的数量.

第二行输入 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示初始读数.

接下来 mm 行,第 jj 行输入三个整数 lj,rj,djl_j,r_j,d_j,表示第 jj 张卡的区间和降温量.

输出格式

输出一个整数,表示最大可能温差.

样例 1

3 1
3 1 4
1 2 2
5

使用唯一的降温卡后,读数为 1,−1,41,-1,4,温差为 4−(−1)=54-(-1)=5.

更多样例

点击下载本题选手目录

下发样例独立构造,用于本地自测.通过这些样例不保证获得某个子任务的分数.

输入文件 答案文件 规模与性质
Data/sample1.in Data/sample1.ans n=4,m=2n=4,m=2,可手算的重叠区间样例
Data/sample2.in Data/sample2.ans n=m=16n=m=16,覆盖子任务 1 的规模
Data/sample3.in Data/sample3.ans n=m=2000n=m=2000,覆盖子任务 2 的规模
Data/sample4.in Data/sample4.ans n=m=2×105n=m=2\times10^5,每张卡满足 lj=rjl_j=r_j
Data/sample5.in Data/sample5.ans n=199997,m=28571n=199997,m=28571,任意两张卡的区间互不相交
Data/sample6.in Data/sample6.ans n=m=2×105n=m=2\times10^5,该样例无特殊限制

数据范围与子任务

所有输入均为整数.1≤n≤2×1051\le n\le2\times10^5,0≤m≤2×1050\le m\le2\times10^5,−109≤ai≤109-10^9\le a_i\le10^9,1≤lj≤rj≤n1\le l_j\le r_j\le n,1≤dj≤1091\le d_j\le10^9.答案可能超过 32 位有符号整数范围.

各子任务独立计分.只有通过某一子任务的全部测试点,才能获得该子任务的全部分数.除表中额外限制外,每个子任务均遵守上述完整数据范围.

子任务 分值 额外限制
1 10 n,m≤16n,m\le16
2 18 n,m≤2000n,m\le2000
3 15 每张卡满足 lj=rjl_j=r_j
4 17 任意两张卡的区间互不相交,即不包含共同的温度计
5 40 无额外限制