Submission #1180700

#TimeUsernameProblemLanguageResultExecution timeMemory
1180700petezaFoehn Phenomena (JOI17_foehn_phenomena)C++20
30 / 100
56 ms5188 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int n, q, s, t;
int a[1000005], diff[1000005];

ll val(ll x) {
    if(x > 0) return -x*s;
    return -x*t;
}

int l, r, x;

int main() {
    cin.tie(0) -> sync_with_stdio(0);
    cin >> n >> q >> s >> t;
    for(int i=0;i<=n;i++) {
        cin >> a[i];
    }
    ll csum = 0;
    for(int i=1;i<=n;i++) {
        diff[i] = a[i] - a[i-1];
        csum += val(diff[i]);
        //cout << csum << '\n';
    }
    //cout << csum << '\n';
    while(q--) {
        cin >> l >> r >> x;
        csum -= val(diff[l]);
        diff[l] += x;
        csum += val(diff[l]);
        r++;
        if(r<=n){
            csum -= val(diff[r]);
            diff[r] -= x;
            csum += val(diff[r]);
        }
        cout << csum << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...