Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static long[][] ans;
- static long buyMaximumProducts(int n, long k, int[] a) {
- int size = a.length;
- ans = new long[size][size + 1];
- for (int i = 0; i < size; i++) {
- for (int j = 0; j <= size; j++) {
- ans[i][j] = -1;
- }
- }
- return func(n, 0, 0, k, a);
- }
- static long func(int n, int j, int index, long k, int[] a) {
- System.out.println(j);
- if (index == n || k == 0 || k < 0)
- return 0;
- if (ans[index][j] != -1) {
- return ans[index][j];
- }
- for (int i = 0; i <= index; i++) {
- ans[index][i] = Math.max(ans[index][j], func(n, i, index + 1, k - i
- * a[index], a) + i);
- }
- return ans[index][j];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement