#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... |