Submission #378416

#TimeUsernameProblemLanguageResultExecution timeMemory
378416limabeansSjeckanje (COCI21_sjeckanje)C++17
0 / 110
2089 ms1372 KiB
#include <bits/stdc++.h> using namespace std; template<typename T> void out(T x) { cout << x << endl; exit(0); } #define watch(x) cout << (#x) << " is " << (x) << endl using ll = long long; const int maxn = 1e6 + 5; int n,q; ll a[maxn]; vector<vector<ll>> dp; ll go(int l, int r) { if (l>=r) { return 0; } if (~dp[l][r]) return dp[l][r]; ll &res = dp[l][r] = 0; ll lo = a[l]; ll hi = a[l]; for (int i=l; i<=r; i++) { lo = min(lo, a[i]); hi = max(hi, a[i]); } res = max(res, hi-lo); for (int i=l; i<r; i++) { res = max(res, go(l,i)+go(i+1,r)); } return res; } ll solve() { dp = vector<vector<ll>>(n, vector<ll>(n, -1)); return go(0,n-1); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>q; for (int i=0; i<n; i++) { cin>>a[i]; } while (q--) { int l,r,dx; cin>>l>>r>>dx; --l; --r; for (int i=l; i<=r; i++) { a[i] += dx; } cout<<solve()<<"\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...