제출 #1271782

#제출 시각아이디문제언어결과실행 시간메모리
1271782cbnk32_tuandungFeast (NOI19_feast)C++17
22 / 100
24 ms3912 KiB
#include <bits/stdc++.h> using namespace std; /* run g++ FEAST.cpp -std=c++1y -o run.exe && ./run.exe */ // CONSTANTs constexpr int MAX_N = 300000 + 5; // GIVEN int N, K; int A[MAX_N]; // VARIABLEs // FUNCTIONs // SUBTASKs bool checkSub1 = true; int cntNeg = 0; bool allNeg = true; namespace sub1 { bool checkInput() { return (checkSub1); } int solve() { long long res = 0; for (int i = 1; i <= N; ++i) { res += A[i]; } cout << res; return 0; } } namespace sub2 { bool checkInput() { return (cntNeg < 2); } int solve() { long long res = 0; for (int i = 1; i <= N; ++i) { if (A[i] > 0) res += A[i]; } cout << res; return 0; } } namespace sub3 { bool checkInput() { return (K == 1); } long long pre[MAX_N]; int solve() { pre[0] = 0; for (int i = 1; i <= N; ++i) { pre[i] = pre[i - 1] + A[i]; } long long res = 0; long long minPre = 0; for (int i = 1; i <= N; ++i) { res = max(res, pre[i] - minPre); minPre = min(minPre, pre[i]); } cout << res; return 0; } } // namespace sub45 { // bool checkInput() { // return (max(K, N) <= 300); // } // long long dp[309][309]; // int solve() { // for (int i = 1; i <= N; ++i) { // dp[i][1] = dp[i - 1][1] + A[i]; // for (int j = 1; j <= min(K, N); ++j) { // for (int k = 1; k <= ) // } // } // return 0; // } // } // MAIN int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); //freopen("FEAST.INP", "r", stdin); //freopen("FEAST.OUT", "w", stdout); cin >> N >> K; for (int i = 1; i <= N; ++i) { cin >> A[i]; checkSub1 = checkSub1 && (A[i] >= 0); if (A[i] < 0) { ++cntNeg; } allNeg = allNeg && (A[i] <= 0); } if (sub1::checkInput()) return sub1::solve(); if (sub2::checkInput()) return sub2::solve(); if (sub3::checkInput()) return sub3::solve(); if (allNeg) { cout << 0; return 0; } // if (sub45::checkInput()) return sub45::solve(); }
#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...