#include <bits/stdc++.h>
using namespace std;
long long n, q, s, t;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n >> q >> s >> t;
long long stamina = 0;
vector<long long> high(n + 1, 0);
for(long long i=0;i<=n;i++){
cin >> high[i];
}
vector<long long> diff(n+1, 0);
for(long long i = 1; i <= n; i++) {
diff[i] = high[i] - high[i-1];
}
long long high_duong=0, high_am=0;
for(long long i=1;i<=n;i++){
if(diff[i]>0){
high_duong+=diff[i];
}
else{
high_am+=-diff[i];
}
}
while(q--){
long long l, r, x;
cin >> l >> r >> x;
if(diff[l]>0){
high_duong-=diff[l];
}
else{
high_am+=diff[l];
}
diff[l]+=x;
if(diff[l]>0){
high_duong+=diff[l];
}
else{
high_am+=-diff[l];
}
if(r+1<=n){
if(diff[r+1]>0){
high_duong-=diff[r+1];
}
else{
high_am+=diff[r+1];
}
diff[r+1]-=x;
if(diff[r+1]>0){
high_duong+=diff[r+1];
}
else{
high_am-=diff[r+1];
}
}
stamina= -s*high_duong+t*high_am;
cout << stamina << "\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... |