Submission #110074

#TimeUsernameProblemLanguageResultExecution timeMemory
110074maruiiFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
197 ms11512 KiB
#include <bits/stdc++.h>
using namespace std;

long long D[1000001];
int main(){
	ios_base::sync_with_stdio(0), cin.tie(0);
	int N, Q, S, T; cin>>N>>Q>>S>>T;
	long long ans = 0;
	for(int i=0, pre=0; i<=N; ++i){
		int x; cin>>x;
		D[i] = x - pre;
		if(D[i]>0) ans -= S*D[i];
		else ans -= T*D[i];
		pre = x;
	}
	while(Q--){
		int s,e,v; cin>>s>>e>>v;
		if(D[s]>0) ans += S*D[s];
		else ans += T*D[s];
		D[s] += v;
		if(D[s]>0) ans -= S*D[s];
		else ans -= T*D[s];
		if(e<N){
			if(D[e+1]>0) ans += S*D[e+1];
			else ans += T*D[e+1];
			D[e+1] -= v;
			if(D[e+1]>0) ans -= S*D[e+1];
			else ans -= T*D[e+1];
		}
		cout<<ans<<'\n';
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...