#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6 + 5;
int a[maxn], pre[maxn];
void solve(){
int n, q, s, t; cin >> n >> q >> s >> t;
for(int i = 0; i <= n; i++) cin >> a[i];
for(int i = 0; i <= n; i++){
pre[i] += a[i];
pre[i + 1] -= a[i];
}
int sum1 = 0, sum2 = 0;
for(int i = 1; i <= n; i++){
if (pre[i] > 0) sum1 += pre[i];
if (pre[i] < 0) sum2 -= pre[i];
}
while (q--){
int x, y, z; cin >> x >> y >> z;
if (pre[x] > 0) sum1 -= pre[x];
if (pre[x] < 0) sum2 += pre[x];
if (y + 1 <= n){
if (pre[y + 1] > 0) sum1 -= pre[y + 1];
if (pre[y + 1] < 0) sum2 += pre[y + 1];
}
pre[x] += z;
pre[y + 1] -= z;
if (pre[x] > 0) sum1 += pre[x];
if (pre[x] < 0) sum2 -= pre[x];
if (y + 1 <= n){
if (pre[y + 1] > 0) sum1 += pre[y + 1];
if (pre[y + 1] < 0) sum2 -= pre[y + 1];
}
cout << t*sum2-s*sum1 << endl;
}
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |