#include<bits/stdc++.h>
#define ff first
#define ss second
#define ll long long
#define pb push_back
using namespace std;
int n, q, s, t, last, st[800000];
vector <int> v;
int consst(int pos, int l, int r){
if(l==r){
if(v[l]<0){
st[pos]=v[l]*(-t);
}
else{
st[pos]=v[l]*(-s);
}
return st[pos];
}
int mid=(l+r)/2;
st[pos]=consst(pos*2+1, l, mid)+consst(pos*2+2, mid+1, r);
return st[pos];
}
int upd(int pos, int l, int r, int q){
if(l==r and l==q){
if(v[l]<0){
st[pos]=v[l]*(-t);
}
else{
st[pos]=v[l]*(-s);
}
return st[pos];
}
if(q<l or q>r){
return st[pos];
}
int mid=(l+r)/2;
st[pos]=upd(pos*2+1, l, mid, q)+upd(pos*2+2, mid+1, r, q);
return st[pos];
}
int main(){
cin>>n>>q>>s>>t>>last;
for(int i=1; i<=n; i++){
int a;
cin>>a;
v.pb(a-last);
last=a;
}
consst(0, 0, n-1);
while(q--){
int l, r, k;
cin>>l>>r>>k;
v[l-1]+=k;
v[r]-=k;
upd(0, 0, n-1, l-1);
upd(0, 0, n-1, r);
cout<<st[0]<<endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |