제출 #379310

#제출 시각아이디문제언어결과실행 시간메모리
379310limabeansSjeckanje (COCI21_sjeckanje)C++17
55 / 110
2078 ms4288 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]; ll solve() { ll dp0 = 0; ll dp1 = 0; ll diff0 = 0; for (int i=2; i<=n; i++) { ll diff = a[i]-a[i-1]; if (diff0*diff>=0) { ll _dp0 = max(dp0,dp1); ll _dp1 = max(dp1,dp0)+abs(diff); dp0 = _dp0; dp1 = _dp1; } else { ll _dp0 = max(dp0,dp1); ll _dp1 = dp0+abs(diff); dp0 = _dp0; dp1 = _dp1; } diff0 = diff; } return max(dp0, dp1); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>q; for (int i=1; i<=n; i++) { cin>>a[i]; } while (q--) { int l,r,dx; cin>>l>>r>>dx; 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...