# include <iostream>
# include <algorithm>
# include <vector>
# include <string>
# include <set>
# include <map>
# include <cmath>
# include <iomanip>
# include <functional>
# include <utility>
# include <stack>
# include <queue>
# include <list>
# include <tuple>
# include <unordered_map>
# include <numeric>
# include <complex>
using namespace std;
using LL = long long;
using ULL = unsigned long long;
constexpr int INF = 2000000000;
constexpr int HINF = INF / 2;
constexpr double DINF = 100000000000000000.0;
constexpr long long LINF = 9223372036854775807;
constexpr long long HLINF = 4500000000000000000;
const double PI = acos(-1);
int dx[4] = { 0,1,0,-1 }, dy[4] = { 1,0,-1,0 };
# define ALL(x)     (x).begin(),(x).end()
# define UNIQ(c)    (c).erase(unique(ALL((c))), end((c)))
# define mp         make_pair
# define eb         emplace_back
# define FOR(i,a,b) for(int i=(a);i<(b);++i)
# define REP(i,n)   FOR(i,0,n)
# define INIT       std::ios::sync_with_stdio(false);std::cin.tie(0);

int n, q, s, t;
LL a[200100];
LL ans;

LL calc(LL lll) {
	if (lll > 0) {
		return -lll * s;
	}
	else {
		return -lll * t;
	}
}
int main() {
	cin >> n >> q >> s >> t;
	LL prev = 0;
	LL in;
	for (int i = 0; i <= n; i++) {
		cin >> in;
		a[i] = in - prev;
		ans += calc(a[i]);
		prev = in;
	}
	LL l, r, x;
	for (int i = 0; i < q; i++) {
		cin >> l >> r >> x;
		r++;
		ans -= calc(a[l]);
		a[l] += x;
		ans += calc(a[l]);
		if (r <= n) {
			ans -= calc(a[r]);
			a[r] -= x;
			ans += calc(a[r]);
		}
		cout << ans << endl;
	}
}