This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b,c,d,i,e,f,g,n,m,k,l,A[500005],B[500005],s,t,r,ans;
int main() {
cin>>n>>m>>s>>t;
n++;
for(ll i=1;i<=n;i++) {
cin>>A[i];
}
B[1]=0;
for(ll i=2;i<=n;i++) {
B[i]=A[i]-A[i-1];
if(B[i]>=0) {
ans+=-B[i]*s;
}
else {
ans+=-B[i]*t;
}
}
//cout<<ans;
//cout<<endl;
while(m--) {
cin>>l>>r>>k;
l++; r++;
a=B[l]+k;
if(a>=0) a=-a*s;
else a=-a*t;
if(B[l]>=0) b=-B[l]*s;
else b=-B[l]*t;
B[l]+=k;
ans+=a-b;
if(r!=n) {
a=B[r+1]-k;
if(a>=0) a=-a*s;
else a=-a*t;
if(B[r+1]>=0) b=-B[r+1]*s;
else b=-B[r+1]*t;
ans+=a-b;
B[r+1]-=k;
}
cout<<ans<<endl;
}
}
/*3 5 1 2
0
4
1
8
1 2 2
1 1 -2
2 3 5
1 2 -1
1 3 5
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |