Submission #1310337

#TimeUsernameProblemLanguageResultExecution timeMemory
1310337attkyFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
68 ms7144 KiB
#include <bits/stdc++.h>
#define int long long

using namespace std;

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n, q, s, t;
    cin >> n >> q >> s >> t;

    int diff[n+2] = {0}, temp[n+1];
    int sum = 0;

    for(int loop = 0; loop < n+1; ++loop) {
        cin >> temp[loop];
    }

    for(int loop = 1; loop < n+1; ++loop) {
        diff[loop] = temp[loop] - temp[loop-1];
        if(diff[loop] > 0) {
            sum -= diff[loop] * s;
        }
        else {
            sum -= diff[loop] * t;
        }
    }

    for(int loop = 0; loop < q; ++loop) {
        int deb, fin, change;
        cin >> deb >> fin >> change;
        fin++;
        if(diff[deb] > 0) {
            sum += diff[deb] * s;
        }
        else {
            sum += diff[deb] * t;
        }
        diff[deb] += change;
        if(diff[deb] > 0) {
            sum -= diff[deb] * s;
        }
        else {
            sum -= diff[deb] * t;
        }

        if(fin <= n) {
            if(diff[fin] > 0) {
                sum += diff[fin] * s;
            }
            else {
                sum += diff[fin] * t;
            }
            diff[fin] -= change;
            if(diff[fin] > 0) {
                sum -= diff[fin] * s;
            }
            else {
                sum -= diff[fin] * t;
            }
        }

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