Submission #996861

#TimeUsernameProblemLanguageResultExecution timeMemory
996861toast12Foehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
451 ms13140 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long

int main() {
    int n, q, s, t;
    cin >> n >> q >> s >> t;
    vector<ll> a(n+1);
    for (int i = 0; i <= n; i++) {
        cin >> a[i];
    }
    vector<ll> diff(n);
    ll pos = 0, neg = 0;
    for (int i = 1; i <= n; i++) {
        diff[i-1] = a[i]-a[i-1];
        if (diff[i-1] < 0)
            neg += abs(diff[i-1]);
        else
            pos += diff[i-1];
    }
    while (q--) {
        int l, r, x;
        cin >> l >> r >> x;
        l--;
        if (diff[l] < 0)
            neg -= abs(diff[l]);
        else
            pos -= abs(diff[l]);
        diff[l] += x;
        if (r < n) {
            if (diff[r] < 0)
                neg -= abs(diff[r]);
            else
                pos -= abs(diff[r]);
            diff[r] -= x;
        }
        if (diff[l] < 0)
            neg += abs(diff[l]);
        else
            pos += diff[l];
        if (r < n) {
            if (diff[r] < 0)
                neg += abs(diff[r]);
            else
                pos += diff[r];
        }
        cout << neg*t - pos*s << '\n';
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...