思路:前缀和

using namespace std;
typedef unsigned long long ull;
const long long N = 2e6 + 100;
long long n, a[N], L, R, X, q, s, t, chai[N], temp;
inline void cal(long long X)
{
	long long c = abs(chai[X]);
	if (chai[X] < 0)
	{
		temp = temp + t * c;
	}
	if (chai[X] > 0)
	{
		temp = temp - s * c;
	}
}
inline void reply(long long X)
{
	long long	c = abs(chai[X]);
	if (chai[X] < 0)
		temp = temp - t * c;
	if (chai[X] > 0)
		temp = temp + s * c;
}
int main()
{
	freopen("wind.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin >> n >> q >> s >> t;
	for (long long i = 0; i <= n; ++i)
		cin >> a[i];
	chai[0] = a[0];
	for (long long i = 1; i <= n; ++i) {
		chai[i] = a[i] - a[i - 1];
		cal(i);
	}
	while (q--)
	{
		cin >> L >> R >> X;
		reply(L);
		chai[L] += X;
		cal(L);
		if (R < n)
		{
			reply(R + 1);
			chai[R + 1] -= X;
			cal(R + 1);
		}
//		for (long long i = 1; i <= n; ++i) cout << chai[i] << " ";
		cout << temp << "\n";
	}

}