Submission #489063

#TimeUsernameProblemLanguageResultExecution timeMemory
489063cheissmartFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
105 ms12368 KiB
#include <bits/stdc++.h>
#define IO_OP ios::sync_with_stdio(0), cin.tie(0)
#define F first
#define S second
#define V vector
#define PB push_back
#define EB emaplce_back
#define MP make_pair
#define ALL(v) (v).begin(), (v).end()

using namespace std;

typedef long long ll;
typedef pair<int, int> pi;
typedef vector<int> vi;

const int INF = 1e9 + 7, N = 2e5 + 7;

int a[N];
ll d[N];

signed main()
{
	IO_OP;
		
	int n, q, s, t;
	cin >> n >> q >> s >> t;
	ll ans = 0;
	auto cost = [&] (ll x) {
		if(x > 0) return -x * s;
		else return -x * t;
	};
	for(int i = 0; i < n + 1; i++) {
		cin >> a[i];
		if(i) {
			d[i] = a[i] - a[i - 1];
			ans += cost(d[i]);
		}
	}
	for(int i = 0; i < q; i++) {
		int l, r, x;
		cin >> l >> r >> x;
		// d[l] += x, d[r + 1] -= x
		ans -= cost(d[l]);
		d[l] += x;
		ans += cost(d[l]);
		if(r + 1 <= n) {
			ans -= cost(d[r + 1]);
			d[r + 1] -= x;
			ans += cost(d[r + 1]);
		}
		cout << ans << '\n';
	}
		
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...