제출 #288785

#제출 시각아이디문제언어결과실행 시간메모리
288785dolijanFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
567 ms13176 KiB
#include <bits/stdc++.h>
typedef long long ll;
#define pb push_back;
using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	ll n,q,s,t;
	cin>>n>>q>>s>>t;
	ll a[n];
	for(int i=0;i<=n;i++) cin>>a[i];
	ll pozitivni=0,negativni=0;
	ll razlika[n];
	for(int i=0;i<n;i++)
	{
		razlika[i]=a[i]-a[i+1];
	}
	for(int i=0;i<n;i++)
	{
		if(razlika[i]<0) negativni+=abs(razlika[i]);
		else pozitivni+=abs(razlika[i]);
	}
	while(q--)
	{
		int l,r,x;
		cin>>l>>r>>x;
		if(r!=n)
		{
			if(razlika[r]<0) negativni-=abs(razlika[r]);
			else pozitivni-=abs(razlika[r]);
			razlika[r]+=x;
			if(razlika[r]<0) negativni+=abs(razlika[r]);
			else pozitivni+=abs(razlika[r]);
		}
		if(razlika[l-1]<0) negativni-=abs(razlika[l-1]);
		else pozitivni-=abs(razlika[l-1]);
		razlika[l-1]-=x;
		if(razlika[l-1]<0) negativni+=abs(razlika[l-1]);
		else pozitivni+=abs(razlika[l-1]);
		cout<<pozitivni*t-negativni*s<<endl;
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...