|
| 1 | +# [Greedy Algorithms: Luck Balance](https://www.hackerrank.com/challenges/luck-balance) |
| 2 | + |
| 3 | +- Difficulty: `#easy` |
| 4 | +- Category: `#ProblemSolvingBasic` |
| 5 | + |
| 6 | +Lena is preparing for an important coding competition that is preceded |
| 7 | +by a number of sequential preliminary contests. |
| 8 | +Initially, her luck balance is 0. |
| 9 | +She believes in "saving luck", and wants to check her theory. |
| 10 | +Each contest is described by two integers, `L[i]` and `T[i]`: |
| 11 | + |
| 12 | +- `L[i]` is the amount of luck associated with a contest. |
| 13 | +If Lena wins the contest, her luck balance will decrease by `L[i]`; |
| 14 | +if she loses it, her luck balance will increase by `L[i]`. |
| 15 | + |
| 16 | +- `T[i]` denotes the contest's importance rating. |
| 17 | +It's equal to `1` if the contest is important, and it's equal to `0` if it's unimportant. |
| 18 | + |
| 19 | +If Lena loses no more than `k` important contests, what is the maximum amount |
| 20 | +of luck she can have after competing in all the preliminary contests? |
| 21 | +This value may be negative. |
| 22 | + |
| 23 | +## Example |
| 24 | + |
| 25 | +```text |
| 26 | +Contest L[i] T[i] |
| 27 | +1 5 1 |
| 28 | +2 1 1 |
| 29 | +3 4 0 |
| 30 | +``` |
| 31 | + |
| 32 | +If Lena loses all of the contests, her will be `5 + 1 +4 = 10`. |
| 33 | +Since she is allowed to lose important contests, |
| 34 | +and there are only `2` important contests, |
| 35 | +she can lose all three contests to maximize her luck at `10`. |
| 36 | + |
| 37 | +If `k = 1`, she has to win at least of the important contests. |
| 38 | +She would choose to win the lowest value important contest worth `1`. |
| 39 | +Her final luck will be `5 + 4 - 1 = 8`. |
| 40 | + |
| 41 | +## Function Description |
| 42 | + |
| 43 | +Complete the luckBalance function in the editor below. |
| 44 | + |
| 45 | +luckBalance has the following parameter(s): |
| 46 | + |
| 47 | +- `int k`: the number of important contests Lena can lose |
| 48 | +- `int contests[n][2]`: a 2D array of integers where each `contests[i]` |
| 49 | +contains two integers that represent the luck balance and importance of the contest |
| 50 | + |
| 51 | +## Returns |
| 52 | + |
| 53 | +- `int`: the maximum luck balance achievable |
| 54 | + |
| 55 | +## Input Format |
| 56 | + |
| 57 | +The first line contains two space-separated integers `n` and `k`, |
| 58 | +the number of preliminary contests and the maximum number |
| 59 | +of important contests Lena can lose. |
| 60 | + |
| 61 | +Each of the next lines contains two space-separated integers, |
| 62 | +`L[i]` and `T[i]`, the contest's luck balance and its importance rating. |
| 63 | + |
| 64 | +## Constraints |
| 65 | + |
| 66 | +- $ 1 \leq n \leq 100 $ |
| 67 | +- $ 0 \leq k \leq N $ |
| 68 | +- $ 1 \leq L[i] \leq 10^4 $ |
| 69 | +- $ T[i] \isin \{0,1\} $ |
| 70 | + |
| 71 | +## Sample Input |
| 72 | + |
| 73 | +```text |
| 74 | +STDIN Function |
| 75 | +----- -------- |
| 76 | +6 3 n = 6, k = 3 |
| 77 | +5 1 contests = [[5, 1], [2, 1], [1, 1], [8, 1], [10, 0], [5, 0]] |
| 78 | +2 1 |
| 79 | +1 1 |
| 80 | +8 1 |
| 81 | +10 0 |
| 82 | +5 0 |
| 83 | +``` |
| 84 | + |
| 85 | +## Sample Output |
| 86 | + |
| 87 | +```text |
| 88 | +29 |
| 89 | +``` |
| 90 | + |
| 91 | +## Explanation |
| 92 | + |
| 93 | +There are `n = 6` contests. Of these contests, `4` are important |
| 94 | +and she cannot lose more than of them. |
| 95 | +Lena maximizes her luck if she wins the $ 3^{rd} $ important contest |
| 96 | +(where `L[i] = 1`) and loses all of the other five contests for a total |
| 97 | +luck balance of `5 + 2 + 8 + 10 + 5 - 1 = 29`. |
0 commit comments