#include <bits/stdc++.h>
#define int long long
#pragma GCC optimize("O3")
#define vi vector<int>
#define vb vector<bool>
#define F(i, s, e) for(int i = s; i < e; i++)
#define sp <<' '<<
#define pii pair<int, int>
#define fi first
#define se second
#define pb push_back
#define vvi vector<vi>
#define vpi vector<pii>
#define vvpi vector<vpi>
#define endl '\n'
const int mod = 1e9 + 7;
using namespace std;
const int N = 1e5+5;
const int inf = 1e15;
void solve() {
int n, m, X, Y;
cin >> n >> m >> X >> Y;
n++;
vi a(n+2, 0);
F(i, 0, n) cin >> a[i];
for(int i = n-1; i > 0; i--) a[i] -= a[i-1];
int ans = 0;
F(i, 1, n) {
if(a[i] > 0) ans -= X * a[i];
else ans -= Y * a[i];
}
F(i, 0, m) {
int l, r, v;
cin >> l >> r >> v;
if(l > 0) {
if(a[l] > 0) ans += X * a[l];
else ans += Y * a[l];
}
if(r+1 < n) {
if(a[r+1] > 0) ans += X * a[r+1];
else ans += Y * a[r+1];
}
a[l] += v;
a[r+1] -= v;
if(l > 0) {
if(a[l] > 0) ans -= X * a[l];
else ans -= Y * a[l];
}
if(r+1 < n) {
if(a[r+1] > 0) ans -= X * a[r+1];
else ans -= Y * a[r+1];
}
cout << ans << endl;
}
}
int32_t main() {
cin.tie(0); ios_base::sync_with_stdio(0);
#ifdef Local
freopen("local.in", "r", stdin);
freopen("local.out", "w", stdout);
#endif
int t = 1;
//cin >> t;
while(t--) 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... |