Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. static long[][] ans;
  2.  
  3. static long buyMaximumProducts(int n, long k, int[] a) {
  4. int size = a.length;
  5. ans = new long[size][size + 1];
  6. for (int i = 0; i < size; i++) {
  7. for (int j = 0; j <= size; j++) {
  8. ans[i][j] = -1;
  9. }
  10. }
  11.  
  12. return func(n, 0, 0, k, a);
  13. }
  14.  
  15. static long func(int n, int j, int index, long k, int[] a) {
  16. System.out.println(j);
  17.  
  18. if (index == n || k == 0 || k < 0)
  19. return 0;
  20.  
  21. if (ans[index][j] != -1) {
  22. return ans[index][j];
  23. }
  24.  
  25. for (int i = 0; i <= index; i++) {
  26. ans[index][i] = Math.max(ans[index][j], func(n, i, index + 1, k - i
  27. * a[index], a) + i);
  28. }
  29.  
  30. return ans[index][j];
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement