Submission #1270975

#TimeUsernameProblemLanguageResultExecution timeMemory
1270975sarocdnikFeast (NOI19_feast)C++20
0 / 100
1 ms328 KiB
#include <bits/stdc++.h> #define ll long long #define N #define fi first #define se second #define pb push_back #define MS(arr, val) memset(arr, val, sizeof(val)) using namespace std; int n, k; ll a[300007]; int cnt = 0; void sub1(){ ll suml = 0; for (int i = 1; i <= n; i++){ if (a[i] < 0) break; suml += a[i]; } ll sumr = 0; for (int i = n; i > 0; i--){ if (a[i] < 0) break; sumr += a[i]; } ll suma = 0; for (int i = 1; i <= n; i++){ suma += a[i]; } if (cnt == 0){ cout << suma; return; } if (k == 1){ cout << max({suml, sumr, suma}); return; } if (k > 1){ cout << max({suml + sumr, suma}); return; } } void sub2(){ ll sum1 = 0; ll sum2 = 0; for (int i = 1; i <= n; i++){ sum1 += a[i]; sum2 = max(sum2, sum1); if (sum1 < 0) sum1 = 0; } cout << sum2; } ll f[2007][2007]; ll g[2007][2007]; void sub3(){ MS(f, -0x3f); MS(g, -0x3f); f[0][0] = g[0][0] = 0; for(int i = 1; i <= n; i++) f[i][0] = 0; for (int j = 1; j <= k; j++){ for (int i = 1; i <= n; i++){ g[i][j] = max(f[i - 1][j - 1], g[i - 1][j]) + a[i]; f[i][j] = max(f[i - 1][j], g[i][j]); } } cout << f[n][k]; } signed main(){ cin.tie(0)->sync_with_stdio(0); #define nhap "SCHESMAR" freopen(nhap".inp", "r", stdin); freopen(nhap".out", "w", stdout); cin >> n >> k; for (int i = 1; i <= n; i++){ cin >> a[i]; if (a[i] < 0) cnt++; } if (cnt <= 1) sub1(); else if (k == 1) sub2(); else sub3(); // sub2(); // sub3(); return 0; }

Compilation message (stderr)

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