제출 #1137232

#제출 시각아이디문제언어결과실행 시간메모리
1137232sohamsen15Feast (NOI19_feast)C++20
21 / 100
1095 ms5160 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; using pll = pair<ll, ll>; vector<ll> a; map<pii, ll> memo; ll solve(ll idx, ll left) { if (memo.count({idx, left})) return memo[{idx, left}]; ll ret = 0; for (ll i = 0; i < idx; i++) { ll ans = 0; if (left != 0) ans += solve(i, left - 1); ll curr = a[i + 1], best = a[i + 1]; for (ll j = i + 2; j <= idx; j++) { curr = max(curr + a[j], a[j]); best = max(best, curr); if (curr < 0) curr = 0; } ans += best; ret = max(ret, ans); } memo[{idx, left}] = ret; return ret; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n, k; cin >> n >> k; a.resize(n + 1); for (ll i = 1; i <= n; i++) cin >> a[i]; cout << solve(n, k - 1) << endl; }
#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...