//Foehn Phenomena
#include <iostream>
#define MIN(a, b) ((a<b)? a :b )
#define MAX(a, b) ((a>b)? a :b )
long long n, q, s, t, l, r, x, sum;
long long arr[200007];
long long dif[200007];
int main(){
std::cin.tie(0);
std::ios_base::sync_with_stdio(0);
std::cin >> n >> q >> s >> t;
sum = 0;
for(int i = 0; i<=n; ++i){
std::cin >> arr[i];
if(i){
dif[i]=arr[i]-arr[i-1];
//std::cout << dif[i] << ' ';
if(dif[i]>0){
sum+=-s*dif[i];
}
else{
sum+=-t*dif[i];
}
//std::cout << '|'<<sum <<'|';
}
}
//std::cout << "bas: "<< sum << '\n';
for(int i = 0; i<q; ++i){
std::cin >> l >> r >> x;
if(dif[l]>0){
sum-=-s*dif[l];
}
else{
sum-=-t*dif[l];
}
if(r+1<=n){
if(dif[r+1]>0){
sum-=-s*dif[r+1];
}
else{
sum-=-t*dif[r+1];
}
}
dif[l]+=x;
dif[r+1]-=x;
if(dif[l]>0){
sum+=-s*dif[l];
}
else{
sum+=-t*dif[l];
}
if(r+1<=n){
if(dif[r+1]>0){
sum+=-s*dif[r+1];
}
else{
sum+=-t*dif[r+1];
}
}
std::cout << sum << '\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |