#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+5;
ll n,m,s,t;
ll c[N],a[N];
ll read(){
ll a=0,k=1;char c=getchar();
while (!isdigit(c)){if (c=='-')k=-1;c=getchar();}
while (isdigit(c)){a=a*10+c-'0';c=getchar();}
return a*k;
}
inline ll lowbit(int x){return x&-x;}
inline void modify(ll x,ll k){
for(register ll i=x;i<=n;i+=lowbit(i)) c[i]+=k;
}
inline ll query(ll y){
ll res=0;
for(register ll i=y;i>=1;i-=lowbit(i)) res+=c[i];
return res;
}
inline ll find(){
ll b=0;
for(register ll i=0;i<n;++i){
int j=i+1;
int x=query(i)+a[i],y=query(j)+a[j];
if(x<y){
b-=s*abs(x-y);
}
if(x>y){
b+=t*abs(x-y);
}
}
return b;
}
int main(){
n=read(),m=read(),s=read(),t=read();
for(register ll i=0;i<=n;++i){
a[i]=read();
}
while(m--){
int x=read(),y=read(),z=read();
if(x>y) swap(x,y);
modify(x,z),modify(y+1,-z);
cout<<find()<<endl;
}
return 0;
}