Submission #1273773

#TimeUsernameProblemLanguageResultExecution timeMemory
1273773nanaseyuzukiFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
66 ms7972 KiB
#include <bits/stdc++.h>
// Author: Kazuki_Will_Win_VOI_8703
#define fi first
#define se second
#define pii pair<int, int>
#define int long long
#define all(a) a.begin(), a.end()
using namespace std;

const int mn = 2e5 + 5, bm = (1 << 11) + 1, mod = 1e9 + 7, offset = 5e4;
const int inf = 1e18, base = 311;

int n, q, s, t, a[mn], d[mn];

void solve(){
    cin >> n >> q >> s >> t;
    for(int i = 0; i <= n; i++) cin >> a[i];
    int Megumi = 0;
    for(int i = 1; i <= n; i++){
        d[i] = a[i] - a[i - 1];
        if(d[i] < 0) Megumi -= d[i] * t;
        else Megumi -= d[i] * s;
    }

    while(q--){
        int l, r, x; cin >> l >> r >> x;
        if(d[l] < 0) Megumi += d[l] * t;
        else Megumi += d[l] * s;

        d[l] += x;

        if(d[l] < 0) Megumi -= d[l] * t;
        else Megumi -= d[l] * s;
        if(r + 1 <= n){
            if(d[r + 1] < 0) Megumi += d[r + 1] * t;
            else Megumi += d[r + 1] * s;

            d[r + 1] -= x;

            if(d[r + 1] < 0) Megumi -= d[r + 1] * t;
            else Megumi -= d[r + 1] * s;
        }
        cout << Megumi << '\n';
    }
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int t = 1;
    // cin >> t;
    while(t--){
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...