Submission #1094777

#TimeUsernameProblemLanguageResultExecution timeMemory
1094777manhlinh1501Sjeckanje (COCI21_sjeckanje)C++17
0 / 110
1 ms344 KiB
#include<bits/stdc++.h> using namespace std; using i64 = long long; const int MAXN = 3e3 + 5; const i64 oo64 = 1e18 + 5; struct event { int l, r, x; event(int l = 0, int r = 0, int x = 0) : l(l), r(r), x(x) {} }; const int INC = 0; const int DEC = 1; int N, Q; i64 a[MAXN]; event query[MAXN]; i64 dp[MAXN][2]; void solve() { // for(int i = 1; i <= N; i++) cout << a[i] << " "; // cout << "\n"; memset(dp, -0x3f, sizeof dp); dp[0][INC] = dp[0][DEC] = 0; dp[1][INC] = dp[1][DEC] = 0; for(int i = 2; i <= N; i++) { if(a[i - 1] == a[i]) { dp[i][INC] = dp[i][DEC] = max(dp[i - 1][INC], dp[i - 1][DEC]); } else if(a[i - 1] < a[i]) { dp[i][INC] = max(dp[i - 1][INC], dp[i - 2][DEC]) + a[i] - a[i - 1]; } else if(a[i - 1] > a[i]) { dp[i][DEC] = max(dp[i - 1][DEC], dp[i - 2][INC]) + a[i - 1] - a[i]; } } // for(int i = 1; i <= N; i++) // cout << dp[i][INC] << " " << dp[i][DEC] << "\n"; // cout << "\n"; cout << max(dp[N][INC], dp[N][DEC]) << "\n"; } signed main() { if(fopen(".inp", "r")) { freopen(".inp", "r", stdin); freopen(".out", "w", stdout); } 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]; for(int i = 1; i <= Q; i++) { auto &[l, r, x] = query[i]; cin >> l >> r >> x; } for(int i = 1; i <= Q; i++) { const auto [l, r, x] = query[i]; for(int j = l; j <= r; j++) a[j] += x; solve(); } }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:47:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |         freopen(".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~
Main.cpp:48:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   48 |         freopen(".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...