#include <bits/stdc++.h>
#define int long long
#define pb push_back
using namespace std;
const int N=2e5+10;
const int inf=1e18;
const int mod=1e9+7;
int a[N],d[N];
signed main() {
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
int T=1;
// cin>>T;
while(T--) {
int n,q,s,t;
cin>>n>>q>>s>>t;
for(int i=1;i<=n+1;i++) {
cin>>a[i];
}
int ans=0;
for(int i=2;i<=n+1;i++) {
d[i]=a[i-1]-a[i];
if(d[i]<0) {ans+=d[i]*s;}
else {ans+=d[i]*t;}
}
while(q--) {
int l,r,x;
cin>>l>>r>>x;
l++,r++;
if(d[l]<0) {
ans-=d[l]*s;
d[l]-=x;
if(d[l]>0) ans+=d[l]*t;
else ans+=d[l]*s;
}
else {
ans-=d[l]*t;
d[l]-=x;
if(d[l]<0) ans+=d[l]*s;
else ans+=d[l]*t;
}
if(r==n+1) {
cout<<ans<<"\n";
continue;
}
if(d[r+1]<0) {
ans-=d[r+1]*s;
d[r+1]+=x;
if(d[r+1]>0) ans+=d[r+1]*t;
else ans+=d[r+1]*s;
}
else {
ans-=d[r+1]*t;
d[r+1]+=x;
if(d[r+1]<0) ans+=d[r+1]*s;
else ans+=d[r+1]*t;
}
cout<<ans<<"\n";
}
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |