Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <math.h>
- using namespace std;
- int vals[100000];
- int memo[100000];
- int solve(int k, int n, int vals[])
- {
- int ans;
- if(n<0)
- return 0;
- else if(memo[n] == -1)
- {
- ans = vals[n] + solve(k, n-k-1, vals);
- for(int i = 1; i<=k; i++)
- ans = max(ans, solve(k, n-i, vals));
- memo[n] = ans;
- }
- return memo[n];
- }
- int main() {
- int n, k;
- cin >> n >> k;
- for(int i = 0; i < n; i++)
- cin >> vals[i];
- for(int j = 0; j < n; j++)
- memo[j] = -1;
- // solve and print answer here
- printf("%d", solve(k, n-1, vals));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement