#P1051. 【挑战题】弹珠

【挑战题】弹珠

题目描述

禾木投出的弹珠在高低不平的泥路向坡底滚动着,坡上到坡底各处可以从1到n编号,编号为i的地方海拔高度为ai。弹珠在滚动的过程中,海拔高度每增加1,速度就减少S,海拔高度每减少1,速度就增加T。初始的海拔高度和速度都视为0。禾木想知道如果编号L到R的地点海拔都增加X,那么弹珠到坡地也就是N号点的速度为多少,禾木有Q次疑问,每次询问修改海拔高度后都要输出弹珠最终的速度。

输入格式

第一行四个整数,分别表示N,Q,S,T。(1≤N,Q≤200000,0≤S,T≤100000) \\第二行N+1个整数a0到an,分别表示编号是0到N的地点的海拔高度。(地点0表示起点,a0的值一定为0) \\接下来Q行,每行三个整数L,R,X,每行表示禾木的一次询问。(-100000≤X≤100000)

输出格式

共Q行,每行一个整数,分别表示禾木每次询问把L到R的海拔高度都增加X后,弹珠从起点滚动到坡底N号点时的速度。

样例 #1

样例输入 #1

5 4 1 2
0 -1 -2 -3 0 -1
3 5 -2
2 2 2
3 4 -3
2 2 1

样例输出 #1

9
10
12
13

样例输入 #2

5 5 3 10
0 2 -2 -4 1 2
2 3 6
3 4 2
5 5 -8
1 1 -8
3 4 6

样例输出 #2

15
8
88
130
172

提示

(1)本题数据比较大,可能要用到long long 型。 \\(2)允许速度为负数。因为初始的海拔高度和速度都视为0\textbf{视为0},并不一定真的是0。