Submission #532840

#TimeUsernameProblemLanguageResultExecution timeMemory
532840rk42745417Foehn Phenomena (JOI17_foehn_phenomena)C++17
100 / 100
115 ms11588 KiB
#include <bits/stdc++.h>
using namespace std;

#define EmiliaMyWife ios::sync_with_stdio(0); cin.tie(0);
using ll = int64_t;
using ull = uint64_t;
using uint = uint32_t;
using ld = long double;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const ll LINF = ll(4e48) + ll(2e15);
const double EPS = 1e-9;
static int LamyIsCute = []() {
	EmiliaMyWife
	return 48763;
}();

signed main() {
	int n, q, s, t;
	cin >> n >> q >> s >> t;
	vector<ll> arr(n + 1);
	for(int i = 0; i <= n; i++)
		cin >> arr[i];
	ll res = 0;
	for(int i = n; i; i--)
		arr[i] -= arr[i - 1];

	auto cost = [&](ll x) {
		return 1LL * s * min<ll>(0, -x) + 1LL * t * max<ll>(0, -x);
	};

	for(int i = 1; i <= n; i++)
		res += cost(arr[i]);
	while(q--) {
		int l, r, x;
		cin >> l >> r >> x;
		r++;
		res -= cost(arr[l]);
		arr[l] += x;
		res += cost(arr[l]);
		if(r <= n) {
			res -= cost(arr[r]);
			arr[r] -= x;
			res += cost(arr[r]);
		}
		cout << res << '\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...