#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll inf = 0x3f3f3f3f, N = 2e5 + 7;
ll a[N], n, q, s, t, x, l, r, k, last, sum;
int main()
{
cin >> n >> q >> s >> t >> x;
for (int i = 1; i <= n; i++)
{
cin >> x;
a[i] = x - last;
last = x;
if (a[i] > 0) sum += -s * a[i];
else sum += -t * a[i];
}
while (q--)
{
cin >> l >> r >> k;
if (a[l] > 0) sum += s * a[l];
else sum += t * a[l];
a[l] += k;
if (a[l] > 0) sum += -s * a[l];
else sum += -t * a[l];
if (r != n)
{
if (a[r+1] > 0) sum += s * a[r+1];
else sum += t * a[r+1];
a[r + 1] -= k;
if (a[r+1] > 0) sum += -s * a[r+1];
else sum += -t * a[r+1];
}
cout << sum << '\n';
}
return 0;
}
这题其实不难,只有 普及/提高- 的难度。我的做法就是纯逻辑/暴力。
希望大家可以提出更好的方法帮助一下孩子吧!