Submission #1281760

#TimeUsernameProblemLanguageResultExecution timeMemory
1281760nanj0178Feast (NOI19_feast)C++20
41 / 100
15 ms25920 KiB
#include <bitset> #include<iostream> // #include<fstream> #include<vector> #include<array> #include<algorithm> #include<set> #include<cmath> #include<unordered_map> #include<iomanip> #include <map> #include <queue> #include <stack> #include <cstring> #include <climits> #include <chrono> #include <random> #include <cassert> using namespace std; #define PRINTARRAY(st, en, a) for(int _i = st; _i <= en; _i++) {cout << a[_i] << (_i != en ? " " : "\n");} #define SZ(A) (int)A.size() using LL = long long; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const LL INF = 1e18; void solve() { int n, k; cin >> n >> k; if (n > 2000) { cout << -1 << "\n"; return; } vector<int> A(n + 1, 0); for(int i = 1; i <= n; i++) { cin >> A[i]; } // vector<vector<LL>> dp(k + 1, vector<LL>(n + 1, INF)); vector<vector<LL>> dp(n + 1, vector<LL>(k + 1, -INF)); // vector<vector<LL>> dp2(n + 1, vector<LL>(k + 1, -INF)); vector<LL> dp2(k + 1, -INF); dp[0][0] = 0; dp2[0] = 0; // dp2[0][0] = 0; // vector<LL> dp (k + 1, INF); for(int i = 1; i <= n; i++) { for(int j = 1; j <= min(i, k); j++) { dp[i][j] = max({dp[i - 1][j] + A[i], dp2[j - 1] + A[i]}); } for(int j = 1; j <= min(i, k); j++) { dp2[j] = max(dp2[j], dp[i][j]); } // cout << i << "-----" << endl; // PRINTARRAY(1, k, dp[i]); // PRINTARRAY(1, k, dp2); } cout << *max_element(dp2.begin(), dp2.end()) << "\n"; } int main() { cin.tie(0); ios_base::sync_with_stdio(false); int testcase = 1; // cin >> testcase; while(testcase--) { 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...