We have been given N balloons, each with a number of coins associated with it. On bursting a balloon i, the number of coins gained is equal to A[i-1]*A[i]*A[i+1]. Also, balloons i-1 and i+1 now become adjacent. Find the maximum possible profit earned after bursting all the balloons. Assume an extra 1 at each boundary.
Input : 5, 10 Output : 60 Explanation - First Burst 5, Coins = 1*5*10 Then burst 10, Coins+= 1*10*1 Total = 60 Input : 1, 2, 3, 4, 5 Output : 110
A recursive solution is discussed here. We can solve this problem using dynamic programming.
First, consider a sub-array from indices Left to Right(inclusive).
If we assume the balloon at index Last to be the last balloon to be burst in this sub-array, we would say the coined gained to be-A[left-1]*A[last]*A[right+1].
Also, the total Coin Gained would be this value, plus dp[left][last – 1] + dp[last + 1][right], where dp[i][j] means maximum coin gained for sub-array with indices i, j.
Therefore, for each value of Left and Right, we need find and choose a value of Last with maximum coin gained, and update the dp array.
Our Answer is the value at dp[N].
- Difference between Arrival Time and Burst Time in CPU Scheduling
- Find minimum number of coins that make a given value
- Number of paths with exactly k coins
- Collect maximum coins before hitting a dead end
- Probability of getting at least K heads in N tosses of Coins
- Probability of getting two consecutive heads after choosing a random coin among two different types of coins
- Buy minimum items without change and given coins
- Probability of getting more heads than tails when N biased coins are tossed
- Path traversed using exactly M coins in K jumps
- Generate a combination of minimum coins that sums to a given value
- Minimum number of coins that can generate all the values in the given range
- Stock Buy Sell to Maximize Profit
- Maximize arr[j] - arr[i] + arr[l] - arr[k], such that i < j < k < l
- Modify array to maximize sum of adjacent differences
- Maximize the binary matrix by filpping submatrix once
- Remove array end element to maximize the sum of product
- Maximize the sum of selected numbers from an array to make it empty
- Maximize array elements upto given number
- Maximize the bitwise OR of an array
- Maximize the number of segments of length p, q and r
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.