#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define MOD 1000000009
#define INF 1000000019
#define INFL 1000000000000000099LL
ll n,q,s,t,a,b,c,ans;
ll co[1000007],dif[1000007];
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n>>q>>t>>s;
n++;
for(ll i=0;i<n;i++){
cin>>co[i];
}
for(ll i=0;i<n-1;i++){
dif[i]=co[i]-co[i+1];
if(dif[i]>0){
ans+=dif[i]*s;
}
else
ans+=dif[i]*t;
}
// cout<<ans;
for(ll i=0;i<q;i++){
// for(ll j=0;j<=n;j++)cout<<dif[j]<<" ";
cin>>a>>b>>c;
a--;
b--;
if(dif[a]>0){
ans-=dif[a]*s;
}
else
ans-=dif[a]*t;
if(dif[b+1]>0){
ans-=dif[b+1]*s;
}
else
ans-=dif[b+1]*t;
dif[a]-=c;
if(b+1<n-1)
dif[b+1]+=c;
// cout<<ans;
if(dif[a]>0){
ans+=dif[a]*s;
}
else
ans+=dif[a]*t;
if(dif[b+1]>0){
ans+=dif[b+1]*s;
}
else
ans+=dif[b+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... |