Submission #1084073

#TimeUsernameProblemLanguageResultExecution timeMemory
1084073duytuandao21Sjeckanje (COCI21_sjeckanje)C++17
55 / 110
2071 ms9140 KiB
#include<bits/stdc++.h> using namespace std; const int N = 2e6 + 7; const int inf = 1e9 + 7; const long long infll = 1e18 + 7; int n, q; long long a[N], b[N], dp[N][2]; long long GetResult() { for (int i = 1; i < n; i++) { b[i] = a[i] - a[i + 1]; dp[i][0] = dp[i][1] = -infll; } dp[1][0] = 0; dp[1][1] = abs(b[1]); for (int i = 2; i < n; i++) { if ((b[i - 1] < 0 && b[i] > 0) || (b[i - 1] > 0 && b[i] < 0)) { dp[i][1] = dp[i - 1][0] + abs(b[i]); dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]); } else { dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]); dp[i][1] = max(dp[i - 1][0], dp[i - 1][1]) + abs(b[i]); } } return max(dp[n - 1][0], dp[n - 1][1]); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> q; for (int i = 1; i <= n; i++) cin >> a[i]; while (q--) { int l, r; long long v; cin >> l >> r >> v; for (int i = l; i <= r; i++) a[i] += v; cout << GetResult(); if (q > 0) cout << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...