#include <iostream>

#define REP(i,n) for(int i=0; i<n; i++)
#define MAXN 200005

using namespace std;

int s, t;

long long int tempdiff(long long int a){
	if (a>=0) return -s*a;
	else return t*(-a);
}

int main(){
	long long int n, q, a[MAXN], temp[MAXN], l, r, x, ans;
	
	cin >> n >> q >> s >> t;
	REP(i,n+1) cin >> a[i];
	for (int i=n; i>0; i--) a[i] = a[i]-a[i-1];
	
	temp[0] = 0;
	for (int i=1; i<n+1; i++){
		temp[i] = tempdiff(a[i]);
	}
	
	ans = 0;
	REP(i,n+1) ans += temp[i];
	//printf("ans = %d\n", ans);
	
	REP(j,q){
		cin >> l >> r >> x;
		a[l] += x;
		ans += tempdiff(a[l]) - temp[l];
		temp[l] = tempdiff(a[l]);
		if (r<n){
			a[r+1] += -x;
			ans += tempdiff(a[r+1]) - temp[r+1];
			temp[r+1] = tempdiff(a[r+1]);
		}
		cout << ans << endl;
	}
		
	return 0;
}

