Submission #1319790

#TimeUsernameProblemLanguageResultExecution timeMemory
1319790vaishakhvFeast (NOI19_feast)C++20
59 / 100
244 ms327680 KiB
// Source: https://usaco.guide/general/io #include <bits/stdc++.h> using namespace std; using ll = long long; #define eb emplace_back // faster than push_back xD // pbds UwU #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #define oset tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update> // use pair for ms // my io library :D #define m1(x) template<class T, class... U> void x(T&& a, U&&... b) #define m2(x) (ll[]){(x forward<U>(b),0)...} m1(pr){cout << forward<T>(a); m2(cout << " " <<); cout << "\n";} m1(re){cin >> forward<T>(a); m2(cin >>);} int main() { ios::sync_with_stdio(0); cin.tie(0); ll n, k; re(n, k); vector<ll> a(n); for (ll i{}; i < n; i++) re(a[i]); vector<vector<vector<ll>>> dp(n+1, vector<vector<ll>>(k+1, vector<ll>(2, -1e18))); dp[0][0][0] = 0; for (ll i = 1; i <= n; i++){ for (ll j{}; j <= k; j++){ dp[i][j][0] = max(dp[i-1][j][0], dp[i-1][j][1]); if (j>0) dp[i][j][1] = max(dp[i][j][1],dp[i-1][j-1][0]+a[i-1]); dp[i][j][1] = max(dp[i][j][1],dp[i-1][j][1]+a[i-1]); } } ll ans = 0; for (ll i{}; i <= k; i++){ ans = max(ans,max(dp[n][i][0], dp[n][i][1])); } pr(ans); }
#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...