Submission #1316784

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

#define MAXN 500005

ll a[MAXN], ans, p;

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

    int N, Q;
    ll S, T;
    cin >> N >> Q >> S >> T;
    for(int i = 0; i <= N; i++) {
        cin >> a[i];
        if(!i)continue;
        int p = abs(a[i] - a[i - 1]);
        ans += p * (a[i] <= a[i - 1] ? T : -S);
    }
    // cout << ans << '\n';
    for(int i = 1; i <= Q; i++) {
        int l, r, vl;
        cin >> l >> r >> vl;
        p = abs(a[l] - a[l - 1]);
        ans -= p * (a[l] <= a[l - 1] ? T : -S);
        if(r + 1 <= N) {
            p = abs(a[r] - a[r + 1]);
            ans -= p * (a[r + 1] <= a[r] ? T : -S);
        }
        a[l] += vl;
        if(l != r) a[r] += vl;
        if(r + 1 <= N) {
            p = abs(a[r] - a[r + 1]);
            ans += p * (a[r + 1] <= a[r] ? T : -S);
        }
        p = abs(a[l] - a[l - 1]);
        ans += p * (a[l] <= a[l - 1] ? T : -S);
        cout << ans << '\n';
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...