Submission #1316421

#TimeUsernameProblemLanguageResultExecution timeMemory
1316421AgageldiFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
93 ms7368 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, Q;
    ll S, T;
    cin >> N >> Q >> S >> T;

    vector<ll> A(N + 1);
    for (int i = 0; i <= N; i++) cin >> A[i];

    vector<ll> d(N + 1); 
    for (int i = 1; i <= N; i++) d[i] = A[i] - A[i - 1];

    auto contrib = [&](ll x) -> ll {
        if (x > 0) return -S * x;
        return -T * x;
    };

    ll ans = 0;
    for (int i = 1; i <= N; i++) ans += contrib(d[i]);

    while (Q--) {
        int L, R;
        ll X;
        cin >> L >> R >> X;

        ans -= contrib(d[L]);
        d[L] += X;
        ans += contrib(d[L]);

        if (R + 1 <= N) {
            ans -= contrib(d[R + 1]);
            d[R + 1] -= X;
            ans += contrib(d[R + 1]);
        }

        cout << ans << "\n";
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...