Submission #332864

#TimeUsernameProblemLanguageResultExecution timeMemory
332864limabeansFoehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
134 ms13164 KiB
#include <bits/stdc++.h>
using namespace std;

template<typename T>
void out(T x) { cout << x << endl; exit(0); }
#define watch(x) cout << (#x) << " is " << (x) << endl





using ll = long long;


const int maxn = 1e6 + 5;


ll n,q,s,t;

ll a[maxn];
ll diff[maxn];

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

    cin>>n>>q>>s>>t;
    for (int i=0; i<=n; i++) {
	cin>>a[i];
    }


    auto get = [&](ll dx) {
	if (dx>0) {
	    return -abs(dx)*s;
	} else {
	    return +abs(dx)*t;
	}
    };

    ll res = 0;
    for (int i=1; i<=n; i++) {
	diff[i] = a[i]-a[i-1];
	res += get(diff[i]);
    }


    while (q--) {
	ll l,r,x;
	cin>>l>>r>>x;
	res -= get(diff[l]);
	diff[l] += x;
	res += get(diff[l]);

	if (r<n) {
	    res -= get(diff[r+1]);
	    diff[r+1] -= x;
	    res += get(diff[r+1]);
	}
	
	cout<<res<<"\n";
    }
    
    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...