Submission #1249170

#TimeUsernameProblemLanguageResultExecution timeMemory
1249170gry3125Foehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
300 ms7252 KiB
#include <bits/stdc++.h>
#define pb push_back
#define ll long long int 
#define all(v) (v).begin(),(v).end()
#define fi first
#define se second
using namespace std;

int main() {
    ll N, Q, S, T; 
    cin >> N >> Q >> S >> T;
    vector<ll> a(N+1), d(N+1); cin >> a[0];
    for (int i = 1; i <= N; i++) {
        cin >> a[i]; d[i] = a[i] - a[i-1];
    }
    ll cur = 0;
    for (int i = 1; i <= N; i++) {
    	if (d[i] > 0) cur -= S*d[i];
    	else cur -= T*d[i];
    }
    while (Q--) {
        int L, R; ll X; cin >> L >> R >> X;
    	if (d[L] > 0) cur += S*d[L];
    	else cur += T*d[L];
    	d[L] += X; 
    	if (R+1 <= N) {
	    	if (d[R+1] > 0) cur += S*d[R+1];
	    	else cur += T*d[R+1];
	    	d[R+1] -= X;
    	}
    	if (d[L] > 0) cur -= S*d[L];
    	else cur -= T*d[L];
    	if (R+1 <= N) {
	    	if (d[R+1] > 0) cur -= S*d[R+1];
	    	else cur -= T*d[R+1];
    	}
        cout << cur << "\n";
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...