#include <bits/stdc++.h>
using namespace std;
int main() {
int n, q; cin>>n>>q;
vector<long long> a(n+1);
for (int i = 1; i<=n; i++) cin>>a[i];
while(q--){
int l, r, x; cin>>l>>r>>x;
for (int i = l; i<=r; i++) a[i]+=x;
set<long long> st1{a[1]}, st2{-a[1]};
vector<long long> dp(n+1);
for (int i = 1; i<=n; i++){
dp[i] = max(dp[i], dp[i-1]);
dp[i] = max(dp[i], *prev(st1.end())-a[i]);
dp[i] = max(dp[i], *prev(st2.end())+a[i]);
if (i!=n){
st1.insert(dp[i] + a[i+1]);
st2.insert(dp[i] - a[i+1]);
}
}
cout<<dp[n]<<"\n";
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |