shivn's blog

By shivn, history, 3 years ago, In English

There are n tickets numbered from 1 to n. Each ticket has a price given by the array price[] and the number of points that you will get after purchasing the ticket is given in another array points[]. You have x amount of money. You need to find out the maximum number of points you can get.

Constraints are 1<=n<=36 1<=price[i]<=1e9 for all i from 1 to n 1<=points[i]<=1e9 for all i from 1 to n and x<=1e9

I am not able to come up with the optimised approach to the problem. Can someone help me to solve this!!

  • Vote: I like it
  • +4
  • Vote: I do not like it

»
3 years ago, hide # |
 
Vote: I like it +14 Vote: I do not like it

Just Looking at constraints and problem statement gives me feel of Meet in the middle Algorithm.

  • »
    »
    3 years ago, hide # ^ |
     
    Vote: I like it +9 Vote: I do not like it

    Yeah it is. Find all subsets for first half and second half. Now for each subset in the first half let's say it has cost c, you need to find the maximum points you can get in the second half under with cost <=x-c. This can be done with stl sets or something