Submission #1094784

#TimeUsernameProblemLanguageResultExecution timeMemory
1094784manhlinh1501Sjeckanje (COCI21_sjeckanje)C++17
55 / 110
54 ms17248 KiB
#include<bits/stdc++.h> using namespace std; using i64 = long long; const int MAXN = 3e5 + 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]; namespace subtask1 { const int MAXN = 3e3 + 5; i64 dp[MAXN][2]; void solve() { 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++) { dp[i][INC] = dp[i][DEC] = max(dp[i - 1][INC], dp[i - 1][DEC]); if(a[i] > 0) dp[i][INC] = max(dp[i][INC], max(dp[i - 1][INC], dp[i - 2][DEC]) + a[i]); if(a[i] < 0) dp[i][DEC] = max(dp[i][DEC], max(dp[i - 1][DEC], dp[i - 2][INC]) - a[i]); } cout << max(dp[N][INC], dp[N][DEC]) << "\n"; } void solution() { for(int i = 1; i <= Q; i++) { const auto [l, r, x] = query[i]; a[l] += x; a[r + 1] -= x; solve(); } } } 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 = N; i >= 1; i--) a[i] = a[i] - a[i - 1]; subtask1::solution(); }

Compilation message (stderr)

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