#P1425. Orange的失效线段树
Orange的失效线段树
Orange的失效线段树
题目描述
Orange刚刚学会了线段树,他想用线段树来解决一个区间最值问题,于是他马上写了一颗线段树。这颗线段树对于一个长度为 的序列 ,支持区间加法和区间查询最大值。
区间加法指的是:对于序列 的一个区间 ,将每个数依次加上一个定值 。
在进行完 次区间加法之后,正当Orange准备查询一次全局最大值时,他惊奇的发现自己写的线段树存在bug,他的前 次区间加法有一个失效了,从而导致他的这次查询不一定能得到正确答案,而Orange并不知道是哪一次区间加法失效。
现在,Orange想知道,在存在一次失效加法的前提下,Orange查询的期望是多少?由于答案可能是一个分数,因此请你输出答案 。
分数取mod表达了如下含义:假设实际答案为 ,你的答案 应该满足 。
输入格式
输入包含多组测试数据。 对于每组测试数据: 第一行包含两个整数 ,表示线段树维护的序列长度和区间加法个数。 第二行为 个整数 ,表示原序列。 接下来 行,每行三个整数 ,表示将 的每个数都加 ,即一次区间加法操作。
数据范围
输出格式
对于每组测试数据,输出一个整数表示答案。
样例 #1
样例输入 #1
1
3 3
1 1 1
1 1 2
2 2 3
3 3 4
样例输出 #1
665496240
提示
原始序列为: 若第1次区间加法失效:,最大值为 若第2次区间加法失效:,最大值为 若第3次区间加法失效:,最大值为 因此最大值的期望为 ,对 之后为