Submission #345543

#TimeUsernameProblemLanguageResultExecution timeMemory
345543NursikFeast (NOI19_feast)C++14
4 / 100
49 ms1516 KiB
#include <bits/stdc++.h> #define f first #define s second #define ll long long #define pb push_back #define all(v) v.begin(),v.end() #define ld long double using namespace std; void data() { #ifdef NURS freopen("main.in", "r", stdin); freopen("main.out", "w", stdout); #endif } void win() { ios_base::sync_with_stdio(0), cin.tie(0),cout.tie(0); } int block = 400; const ld eps = 1e-6; const int N = 1e6 + 500; const int mod = 1e9 + 7; const ll hh = 100010683; const ll hh2 = 150005819; int n, k, g, pos; int a[N]; ll s, ans; int main() { data(); win(); cin >> n >> k; bool was = 0; for (int i = 1; i <= n; i++) { cin >> a[i]; was = was | (a[i] < 0), s += a[i]; if (a[i] < 0) g++, pos = i; } //first subtask if (was == 0) { cout << s << '\n'; return 0; } //second subtask if (g == 1 && k >= 2) { cout << s - a[pos] << '\n'; return 0; } else if (g == 1 && k == 1) { ans = max(ans, s - a[pos]); s = 0; for (int i = 1; i < pos; i++) s += a[i]; ans = max(ans, s), s = 0; for (int i = pos + 1; i <= n; i++) s += a[i]; ans = max(ans, s); cout << ans << '\n'; return 0; } }
#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...