#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define MAXN 500005
ll a[MAXN], ans, p;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, Q;
ll S, T;
cin >> N >> Q >> S >> T;
for(int i = 0; i <= N; i++) {
cin >> a[i];
if(!i)continue;
int p = abs(a[i] - a[i - 1]);
ans += p * (a[i] <= a[i - 1] ? T : -S);
}
// cout << ans << '\n';
for(int i = 1; i <= Q; i++) {
int l, r, vl;
cin >> l >> r >> vl;
p = abs(a[l] - a[l - 1]);
ans -= p * (a[l] <= a[l - 1] ? T : -S);
if(r + 1 <= N) {
p = abs(a[r] - a[r + 1]);
ans -= p * (a[r + 1] <= a[r] ? T : -S);
}
a[l] += vl;
if(l != r) a[r] += vl;
if(r + 1 <= N) {
p = abs(a[r] - a[r + 1]);
ans += p * (a[r + 1] <= a[r] ? T : -S);
}
p = abs(a[l] - a[l - 1]);
ans += p * (a[l] <= a[l - 1] ? T : -S);
cout << ans << '\n';
}
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... |