#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
#include <tuple>
#include <math.h>
#include <cstring>
#include <bitset>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
#define endl '\n'
#define f first
#define s second
#define all(x) begin(x),end(x)
int sum = 0;
int x1,x2;
void process(int n){
if(n > 0){
sum -= n*x1;
}
else sum -= n*x2;
}
void negprocess(int n){
if(n > 0){
sum += n*x1;
}
else sum += n*x2;
}
int main(){
int n,m;cin >> n >> m;
cin >> x1 >> x2;
vector<int> vc;
int last = 0;
for(int i{};i <= n;i++){
int g;cin >> g;
vc.emplace_back(g-last);
process(vc.back());
last = g;
}
for(int i{};i < m;i++){
int a,b,c;cin >> a >> b >> c;
if(a > 0){
negprocess(vc[a]);
vc[a] += c;
process(vc[a]);
}
if(b < n){
negprocess(vc[b+1]);
vc[b+1] -= c;
process(vc[b+1]);
}
// for(auto k:vc) cout << k << " ";
// cout << endl;
cout << sum << endl;
}
}