Submission #1212485

#TimeUsernameProblemLanguageResultExecution timeMemory
1212485VMaksimoski008Foehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
337 ms7348 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

signed main() {
    ll n, q, s, t, ans = 0;
    cin >> n >> q >> s >> t;

    vector<ll> a(n+1), d(n+1);
    for(int i=0; i<=n; i++) {
        cin >> a[i];

        if(i > 0) {
            d[i] = a[i] - a[i-1];
            if(d[i] > 0) ans -= d[i] * s;
            else ans += abs(d[i]) * t;
        }
    }

    auto upd = [&](int p, int x) {
        ans += d[p] * (d[p] > 0 ? s : t);
        d[p] += x;
        ans -= d[p] * (d[p] > 0 ? s : t);
    };

    while(q--) {
        int l, r, x; cin >> l >> r >> x;

        upd(l, x);
        if(r != n) upd(r+1, -x);

        cout << ans << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...