#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int nx = 2e5 + 5;
int n, q;
ll s, t, a[nx], height[nx], mor, les;
void update(int idx, ll val) {
for (int i = idx; i < nx; i += (i & -i)) {
height[i] += val;
}
}
ll query(int idx) {
ll sum = 0;
for (int i = idx; i >= 1; i -= (i & -i)) {
sum += height[i];
}
return sum;
}
int main() {
ios_base::sync_with_stdio(0), cin.tie(0);
cin >> n >> q >> s >> t;
for (int i = 0; i <= n; i++) {
cin >> a[i];
if (i > 0) {
if (a[i] - a[i - 1] > 0) {
mor += a[i] - a[i - 1];
} else {
les += a[i - 1] - a[i];
}
update(i, a[i]-a[i-1]);
}
}
while (q--) {
int l, r;
ll x;
cin >> l >> r >> x;
ll pl = query(l - 1), cl = query(l), nr = query(r + 1), cr = query(r);
if (pl > cl) les -= (pl - cl);
else mor -= (cl - pl);
if (cl + x - pl > 0) mor += cl + x - pl;
else les += pl - cl - x;
if (r + 1 <= n) {
if (nr < cr) les -= (cr - nr);
else mor -= (nr - cr);
if (nr - cr - x > 0) mor += nr - cr - x;
else les += x + cr - nr;
}
update(l, x);
update(r + 1, -x);
cout << les*t - mor*s << "\n";
}
}