#include <bits/stdc++.h>
#define pb push_back
#define ll long long int
#define all(v) (v).begin(),(v).end()
#define fi first
#define se second
using namespace std;
int main() {
ll N, Q, S, T;
cin >> N >> Q >> S >> T;
vector<ll> a(N+1), d(N+1); cin >> a[0];
for (int i = 1; i <= N; i++) {
cin >> a[i]; d[i] = a[i] - a[i-1];
}
ll cur = 0;
for (int i = 1; i <= N; i++) {
if (d[i] > 0) cur -= S*d[i];
else cur -= T*d[i];
}
while (Q--) {
int L, R; ll X; cin >> L >> R >> X;
if (d[L] > 0) cur += S*d[L];
else cur += T*d[L];
d[L] += X;
if (R+1 <= N) {
if (d[R+1] > 0) cur += S*d[R+1];
else cur += T*d[R+1];
d[R+1] -= X;
}
if (d[L] > 0) cur -= S*d[L];
else cur -= T*d[L];
if (R+1 <= N) {
if (d[R+1] > 0) cur -= S*d[R+1];
else cur -= T*d[R+1];
}
cout << cur << "\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... |