Problem Statement
In school you took some tests. Your score on each test was an integer between 0 (worst) and 99 (best), inclusive. After all the tests were done, you were given the report where all your scores are written. You are supposed to bring the report home and show it to your parents.
You aren't too happy with your scores, so you decided to improve the report: you may change any one digit to any other digit.
Do the change that will improve your report as much as possible. Compute and return the largest possible sum of all scores on your report card after you change up to one digit in one of the numbers.
Definition
- Class:
- CheatingAfterTests
- Method:
- cheat
- Parameters:
- int[]
- Returns:
- int
- Method signature:
- int cheat(int[] report)
- (be sure your method is public)
Notes
- You can only edit digits, not add new ones. In particular, if a number on the report only has one digit, it must remain a one-digit number.
Constraints
- report will have between 1 and 50 elements, inclusive.
- Each element of report will be between 0 and 99, inclusive.
Examples
{51, 47, 93}
Returns: 241
The best improvement you can make here is to change the 47 into a 97. The sum of the scores on the fixed report card will be 51 + 97 + 93.
{99, 99}
Returns: 198
This report cannot be improved, the best sum of scores you can get is 99 + 99. Therefore, the optimal solution is to do nothing.
{4, 5, 7, 2}
Returns: 25
Here you should improve the 2 into a 9. Note that you cannot add new digits, you can only change the existing ones. (For example, you are not allowed to change the 4 into a 94.)
{93, 97, 92, 99, 92, 93}
Returns: 573
Here the optimal solution is to improve one of the 92s into a 99.
{94, 6, 1, 4}
Returns: 113
Improving 1 to 9 is better than improving 94 to 99 or either of the two remaining options.
{96, 40, 97, 14, 95, 98, 40, 2}
Returns: 562
{91, 52, 70, 94}
Returns: 347
{96, 98, 87}
Returns: 291
{98}
Returns: 99
{1, 9, 9}
Returns: 27
{32, 26}
Returns: 128
{98}
Returns: 99
{1, 5, 4, 2, 1, 90, 6, 0, 4}
Returns: 122
{91}
Returns: 99
{94, 18, 97, 55, 92, 98, 46, 98, 94, 21, 96, 98, 91, 90, 90, 94, 47, 69, 97, 90, 84, 94, 91, 64, 97, 74, 95, 58, 88, 89, 69}
Returns: 2558
{8, 6, 8}
Returns: 25
{73, 50, 72, 76, 74, 72, 61, 80, 85}
Returns: 683
{20}
Returns: 90
{99, 99}
Returns: 198
{5, 0, 81, 52, 5, 99, 99, 99, 9, 51, 9, 9, 9, 5, 9, 62, 99, 3, 13, 99, 30, 0, 9}
Returns: 936
{93, 95, 4, 96, 6, 97, 90, 96, 0, 98, 5, 97, 1, 91, 90, 9, 4, 97, 96, 9, 98, 90, 0, 90, 0, 6, 4, 90, 4, 90, 91, 96}
Returns: 1842
{99, 90, 99, 99}
Returns: 396
{19, 9, 85, 19, 2, 8, 88, 2, 39, 2, 11, 9, 69, 1, 5, 10, 89, 6, 44, 3}
Returns: 600
{46, 68, 77, 32, 79, 41, 9, 9, 61, 99, 75, 45, 9, 99, 47, 47, 99, 85, 43, 14, 35, 99, 9, 23, 99, 62, 21, 38, 99, 9, 9, 99, 9, 99, 9, 83, 34, 15, 53, 51, 30, 9, 99}
Returns: 2257
{97, 92, 93, 92, 92, 97, 94, 98, 90, 94, 95, 94, 93, 93, 93, 97, 94, 90, 98, 98, 92, 94, 95, 90, 98, 97, 91}
Returns: 2550
{1, 6, 8, 7, 9, 2}
Returns: 41
{8, 0, 3, 80, 8, 0, 94, 91, 5, 4, 25, 95, 7, 6, 3, 93, 84, 36, 4, 7, 14, 74, 92, 95, 52, 92, 64, 92, 1}
Returns: 1309
{1, 23, 3, 2, 9, 8, 9, 2, 26, 27}
Returns: 180
{1}
Returns: 9
{5, 4, 2}
Returns: 18
{90}
Returns: 99
{76, 34, 8, 9, 99, 0}
Returns: 286
{43, 86, 42, 71, 83, 14, 18}
Returns: 437
{94}
Returns: 99
{95, 92, 4, 7, 96, 91, 93, 2, 4, 4, 5, 92, 1, 6, 94, 8, 92}
Returns: 794
{99, 46, 53, 99, 27, 7, 79, 9, 1, 9, 31, 9, 56, 9, 9, 9}
Returns: 622
{58}
Returns: 98
{99}
Returns: 99
{97, 98}
Returns: 197
{93, 94, 96, 99, 9}
Returns: 397
{99, 9}
Returns: 108
{96, 91, 98, 90, 6}
Returns: 390
{9}
Returns: 9
{57}
Returns: 97
{93}
Returns: 99
{2, 99, 99, 99, 14, 99, 9, 73}
Returns: 574
{93, 36, 73, 93, 52, 12, 98, 95}
Returns: 632
{0, 1, 1, 0, 0, 3, 6, 2, 6, 2, 3}
Returns: 33
{74, 80, 70, 96, 74, 92, 96, 38, 18, 57, 96, 90, 11, 48, 97, 37, 52, 25, 96, 92, 96, 47, 96, 96, 97}
Returns: 1851
{93}
Returns: 99
{7}
Returns: 9
{77, 98, 27, 92}
Returns: 364
{91, 99, 9, 96, 9, 94, 9, 93, 4, 90, 99, 96, 9, 6, 91, 9, 98, 99, 96, 96, 99, 96, 96, 92, 9, 6, 99, 4, 99, 9, 90}
Returns: 2001
{74}
Returns: 94
{94, 90, 9}
Returns: 202
{98, 99, 99, 83, 9, 99, 93, 99, 99, 90, 45, 99, 9, 9, 97, 99, 56, 95, 93}
Returns: 1520
{3, 98, 9, 60, 4, 0}
Returns: 204
{3}
Returns: 9
{38, 94, 2, 3, 43, 90, 98, 11, 91, 42, 29, 66, 36}
Returns: 723
{91, 94, 0, 10, 1, 66, 97, 96, 9, 43, 0, 8, 8, 2, 9, 50, 97, 91, 91, 90, 98, 3, 3, 83, 92, 68, 94, 67}
Returns: 1541
{4, 3, 3, 0, 0}
Returns: 19
{99, 99, 99, 99, 9, 9, 9, 99, 99, 9, 9, 9, 99, 99, 9, 99, 99}
Returns: 1053
{7, 8, 91}
Returns: 114
{75, 87, 13, 68, 31, 11, 71, 46, 56, 17, 74, 77, 40, 48, 79, 80}
Returns: 953
{7, 0, 4, 1, 92, 92, 96, 6, 99, 1, 3, 99, 95, 9, 90, 90, 1, 99, 99, 99, 98, 92, 93, 99, 99, 99}
Returns: 1671
{90, 91, 96, 98, 96}
Returns: 480
{9, 9, 4, 99}
Returns: 126
{99, 9}
Returns: 108
{5, 99, 9, 99}
Returns: 216
{95}
Returns: 99
{99, 95, 7}
Returns: 205
{35, 25, 50, 84, 59, 49, 50, 43, 19, 26, 39, 21}
Returns: 580
{5, 9, 2, 9}
Returns: 32
{99, 1, 7}
Returns: 115
{9}
Returns: 9
{72, 83, 31, 22, 73, 44, 14, 63, 81, 30, 88, 84, 75, 10, 19, 37, 79, 34, 71, 42, 80, 30, 31, 63, 80, 79}
Returns: 1495
{92, 97}
Returns: 196
{66, 34, 75, 46, 64, 21, 54, 52, 13, 15, 70, 14, 81, 69, 30, 63, 58, 17, 46, 59, 85, 53, 36, 83, 43, 13, 45, 25, 84, 63, 59, 34, 17, 43}
Returns: 1710
{94, 96, 69, 93, 97, 17, 89, 91, 13, 38, 75, 20, 20}
Returns: 892
{94}
Returns: 99
{99, 9, 9, 99, 99, 7, 9, 99, 4, 9}
Returns: 448
{95}
Returns: 99
{93, 93, 96, 97, 90, 96, 91, 97, 96, 96, 92, 96, 93, 93, 94, 96, 92, 95, 93, 93, 96, 94, 94, 97, 98, 91, 91, 97, 93, 91, 94, 92, 91, 96, 96, 91, 97, 93, 93, 92, 97, 97, 97}
Returns: 4059
{93, 93}
Returns: 192
{41, 99, 20, 58, 99, 9, 9}
Returns: 405
{99, 9, 80, 26, 14, 9, 73, 6, 23, 9, 99, 99, 68, 8, 31, 99, 4, 99, 18, 21, 7, 4, 59, 82, 50, 6, 45, 77}
Returns: 1304
{90, 92, 47, 91, 91, 70, 62, 96, 41, 92, 92, 98, 61, 39, 66, 44, 70, 98, 95, 56, 83, 45, 88, 30, 92, 89, 93, 90, 93}
Returns: 2254
{12, 28}
Returns: 120
{5, 0}
Returns: 14
{92, 96, 99, 9, 90, 90, 97, 95, 9, 98, 63, 86, 99, 99, 90, 93, 99, 56, 56, 92, 96, 9, 90, 90, 95, 92, 90, 65, 94, 78, 92, 61, 69, 90, 90, 49, 72, 95, 92, 84, 75}
Returns: 3326
{65, 59, 31, 50, 13, 57, 43, 40, 23, 79, 80, 13, 76, 47, 72, 82, 75, 24, 20, 32, 60, 86, 62, 76, 80, 10, 89, 53, 49, 44, 77, 61, 45, 47, 25, 42, 15, 67, 17, 15, 44}
Returns: 2125
{82, 13, 24, 90, 99, 76, 1, 84, 97, 97, 90}
Returns: 833
{47}
Returns: 97
{7}
Returns: 9
{2, 0, 1, 3, 4, 4, 1, 7, 5, 6, 8, 5, 9, 1, 6, 6, 6, 2, 6, 5, 4, 1, 7, 6, 3, 0, 9, 3, 1, 5, 0, 4, 6, 1, 0, 7, 7, 0, 1, 2, 8, 6, 3, 6, 0, 0, 3, 6, 6, 9}
Returns: 210
{7}
Returns: 9
{99}
Returns: 99
{9, 9, 9, 9, 88, 99, 37, 43, 40, 99, 30, 9, 9, 9, 99, 9, 24, 47, 99, 99, 99, 99, 64, 9, 99, 34, 80, 18, 40, 9}
Returns: 1507
{11, 7 }
Returns: 98
{10, 1 }
Returns: 91
{5, 72 }
Returns: 97
{10, 10, 10 }
Returns: 110
{92, 94 }
Returns: 193
{9, 10 }
Returns: 99
{10 }
Returns: 90
{92, 8 }
Returns: 107
{8, 91 }
Returns: 107
{9, 25, 35 }
Returns: 139
{71, 0 }
Returns: 91
{0, 0, 9 }
Returns: 18
{0 }
Returns: 9
{20, 10 }
Returns: 110
{8, 51 }
Returns: 99