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 <iostream>
#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define MOD2 998244353
#define ll long long
#define pri pair<int,int>
#define prl pair<ll,ll>
#define vi vector<int>
#define vl vector<ll>
#define vp vector<pair<int,int>>
#define vpl vector<pair<ll,ll>>
#define re return 0
#define sqrt sqrtl
#define int ll
int32_t main() {
int n,q,s,t;cin>>n>>q>>s>>t;n++;
vi spot(n);for (int i = 0;i<n;i++) cin>>spot[i];
vi diff(n-1);for (int i = 0;i<n-1;i++) diff[i] = spot[i+1]-spot[i];
int windtemp = 0;
for (int i = 0;i<n-1;i++) {
if (diff[i]>0) windtemp-=diff[i]*s;
else windtemp-=diff[i]*t;
}
for (int i = 0;i<q;i++) {
int l,r,x;cin>>l>>r>>x;
if (l!=0) {
if (diff[l-1]>0) windtemp+=diff[l-1]*s;
else windtemp+=diff[l-1]*t;
diff[l-1]+=x;
if (diff[l-1]>0) windtemp-=diff[l-1]*s;
else windtemp-=diff[l-1]*t;
}
if (r!=n-1) {
if (diff[r]>0) windtemp+=diff[r]*s;
else windtemp+=diff[r]*t;
diff[r]-=x;
if (diff[r]>0) windtemp-=diff[r]*s;
else windtemp-=diff[r]*t;
}
cout<<windtemp<<endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |