제출 #1017917

#제출 시각아이디문제언어결과실행 시간메모리
1017917vjudge1Foehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
87 ms12300 KiB
#include "bits/stdc++.h"
using namespace std;
 
#define ar array
typedef long long ll;

//~ #define int ll

signed main() {
	ios::sync_with_stdio(0); cin.tie(0);
	
	int n, q, s, t;
	cin >> n >> q >> s >> t;
	
	vector<int> a(n + 1);
	
	for(int i=0;i<=n;i++){
		cin >> a[i];
	}
	
	vector<ll> d(n + 1);
	
	ll ans = 0;
	
	for(int i=1;i<=n;i++){
		d[i] = a[i] - a[i - 1];
		
		if(d[i] > 0){
			ans -= d[i] * s;
		} else {
			ans -= d[i] * t;
		}
	}
	
	while(q--){
		int l, r, x; cin >> l >> r >> x;
		
		if(d[l] > 0){
			ans += d[l] * s;
		} else {
			ans += d[l] * t;
		}
		
		if(r + 1 <= n){
			if(d[r + 1] > 0){
				ans += d[r + 1] * s;
			} else {
				ans += d[r + 1] * t;
			}
		}
		
		d[l] = d[l] + x;
		if(r + 1 <= n){
			d[r + 1] = d[r + 1] - x;
		}
		
		if(d[l] > 0){
			ans -= d[l] * s;
		} else {
			ans -= d[l] * t;
		}
		
		if(r + 1 <= n){
			if(d[r + 1] > 0){
				ans -= d[r + 1] * s;
			} else {
				ans -= d[r + 1] * t;
			}
		}
		
		cout<<ans<<"\n";
	}
	
	
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...