Statistics

Problem Statement for "MovieRating"

Problem Statement

A web site for movie fans assigns a composite rating to each movie. Your task is to calculate the rating of a particular movie. Users of the site rate the movie on a scale of 0 to 100, inclusive. The lowCount lowest ratings and the highCount highest ratings are thrown away, and the composite rating is the average of the remaining individual ratings.

Given the user ratings in a int[] marks, together with lowCount and highCount, return the rating of the movie.

Definition

Class:
MovieRating
Method:
calculate
Parameters:
int[], int, int
Returns:
double
Method signature:
double calculate(int[] marks, int lowCount, int highCount)
(be sure your method is public)

Notes

  • A return value with either an absolute or relative error of less than 1.0E-9 is considered correct.

Constraints

  • marks will contain between 1 and 50 elements, inclusive.
  • Each element of marks will be between 0 and 100, inclusive.
  • lowCount and highCount will be between 0 and 50, inclusive.
  • lowCount+highCount will be strictly less than the number of elements in marks.

Examples

  1. {70, 99, 96, 0, 30}

    0

    0

    Returns: 59.0

    With no individual ratings thrown away we should return just (70 + 99 + 96 + 0 + 30) / 5 = 295 / 5 = 59.

  2. {91, 90, 50}

    1

    1

    Returns: 90.0

    Here the lowest rating (50) and the highest rating (91) are thrown away, so only one individual rating (90) is left.

  3. {23, 23, 23, 23, 23, 23, 23, 23}

    2

    3

    Returns: 23.0

    There can be repeats in marks.

  4. {31, 52, 20, 86, 47, 76, 82, 27, 42, 29}

    1

    4

    Returns: 35.2

  5. {1, 1, 0, 0, 1, 1, 0, 1, 0, 2}

    2

    2

    Returns: 0.6666666666666666

  6. {0}

    0

    0

    Returns: 0.0

  7. {100}

    0

    0

    Returns: 100.0

  8. {47, 90}

    0

    0

    Returns: 68.5

  9. {0, 0}

    0

    1

    Returns: 0.0

  10. {100, 100}

    1

    0

    Returns: 100.0

  11. {62, 93}

    0

    1

    Returns: 62.0

  12. {92, 14}

    0

    1

    Returns: 14.0

  13. {6, 94}

    1

    0

    Returns: 94.0

  14. {64, 58}

    1

    0

    Returns: 64.0

  15. {89, 17, 42, 49, 8, 6, 20, 8, 28, 28, 23, 65, 88, 98, 95, 31, 80, 69, 71, 18, 62, 99, 70, 68, 27, 37, 53, 97, 36, 36, 64, 61, 52, 32, 97, 89, 38, 87}

    9

    16

    Returns: 42.84615384615385

  16. {76, 2, 46, 99, 75, 76, 35, 99, 49, 15, 42, 36, 45, 86, 95, 28, 48, 32, 17, 18, 20, 23, 22, 79, 49, 39, 38, 11, 64, 33, 14, 1, 98, 5, 69, 25, 95, 37, 65}

    15

    9

    Returns: 49.13333333333333

  17. {35, 79, 0, 39, 6, 90, 82, 19, 69, 33, 23, 62, 56, 75, 46, 77, 61, 30, 34, 49, 26, 76}

    2

    7

    Returns: 39.46153846153846

  18. {22, 64, 61, 33, 2, 73, 60, 41, 48, 33, 71, 75, 24, 32, 61}

    7

    2

    Returns: 60.833333333333336

  19. {100, 52, 1, 85, 100, 49, 20, 77, 15, 89, 72, 40, 58, 11, 71, 40, 100, 75, 71, 34, 58, 98, 16, 98}

    1

    7

    Returns: 47.4375

  20. {84, 21, 54, 78, 31, 73, 27, 12, 34, 43, 88, 65, 57, 56, 21, 86, 79, 25, 32, 32, 55, 29, 19, 66, 1, 49, 100, 96, 57, 41, 87, 88, 13, 36, 96, 80, 96, 34, 64, 24, 28, 35, 44, 3, 79, 49, 93, 3, 24, 12}

    0

    0

    Returns: 49.98

  21. {80, 64, 38, 31, 68, 96, 74, 91, 55, 54, 57, 53, 76, 28, 96, 58, 52, 27, 64, 81, 55, 45, 13, 33, 99, 92, 84, 62, 38, 9, 46, 6, 31, 30, 87, 26, 20, 6, 19, 22, 98, 69, 56, 20, 39, 34, 100, 40, 14, 17}

    0

    1

    Returns: 50.06122448979592

  22. {82, 23, 14, 25, 18, 92, 100, 3, 98, 15, 18, 60, 100, 25, 51, 33, 30, 93, 50, 36, 65, 29, 32, 87, 59, 79, 9, 60, 84, 33, 84, 80, 74, 46, 14, 59, 47, 12, 23, 55, 40, 76, 40, 15, 42, 42, 36, 54, 33, 51}

    0

    3

    Returns: 45.276595744680854

  23. {70, 41, 94, 86, 86, 85, 25, 45, 95, 86, 1, 19, 11, 7, 37, 32, 77, 63, 90, 55, 26, 50, 38, 18, 23, 55, 24, 57, 43, 69, 9, 88, 25, 50, 1, 6, 5, 39, 83, 57, 69, 59, 30, 97, 0, 48, 45, 49, 47, 82}

    0

    49

    Returns: 0.0

  24. {10, 51, 9, 95, 49, 20, 44, 37, 34, 40, 93, 25, 67, 76, 8, 0, 72, 96, 80, 53, 1, 21, 15, 10, 71, 81, 48, 89, 59, 12, 1, 57, 0, 97, 11, 51, 79, 17, 53, 59, 2, 64, 79, 90, 88, 22, 71, 45, 22, 17}

    1

    0

    Returns: 46.755102040816325

  25. {42, 27, 3, 85, 12, 96, 21, 62, 25, 91, 61, 30, 96, 72, 55, 22, 30, 98, 8, 55, 81, 9, 35, 94, 57, 62, 57, 82, 10, 66, 39, 54, 76, 68, 26, 37, 5, 50, 21, 95, 1, 21, 87, 98, 15, 41, 21, 11, 82, 52}

    11

    0

    Returns: 59.69230769230769

  26. {92, 69, 14, 22, 28, 53, 10, 10, 28, 11, 58, 16, 74, 81, 91, 67, 21, 49, 100, 19, 31, 93, 87, 38, 49, 49, 29, 19, 25, 57, 34, 17, 35, 79, 100, 61, 61, 21, 0, 68, 57, 55, 16, 39, 92, 53, 77, 5, 81, 41}

    49

    0

    Returns: 100.0

  27. {62, 77, 47, 0, 21, 25, 84, 100, 94, 50, 52, 32, 31, 90, 6, 29, 8, 17, 28, 31, 54, 12, 75, 78, 77, 54, 63, 40, 70, 23, 37, 76, 62, 72, 51, 61, 34, 7, 99, 14, 65, 61, 59, 31, 66, 76, 37, 71, 62, 28}

    8

    30

    Returns: 30.5

  28. {86, 13, 71, 42, 10, 82, 59, 28, 92, 18, 7, 6, 17, 63, 63, 73, 10, 93, 74, 89, 96, 1, 99, 25, 79, 38, 14, 17, 97, 34, 90, 90, 21, 70, 50, 77, 14, 66, 35, 16, 71, 12, 51, 61, 35, 39, 74, 66, 14, 14}

    32

    17

    Returns: 70.0

  29. {65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65}

    25

    17

    Returns: 65.0

  30. {17, 59, 28, 28, 17, 17, 17, 60, 17, 24, 13, 28, 28, 60, 60, 70, 70, 24, 28, 70, 70, 70, 13, 70, 24, 59, 59, 17, 17, 60, 13, 70, 17, 24, 70, 24}

    0

    33

    Returns: 13.0

  31. {57, 56, 55, 54, 56, 57, 55, 55, 54, 49, 51, 55, 49, 52, 53, 52, 49, 53, 52, 55, 54, 54, 53, 55, 53, 49, 52, 56, 57, 55, 50, 52, 49, 52, 56, 50, 52, 54, 50, 53, 52, 52, 51, 57, 53, 51, 49, 52}

    0

    47

    Returns: 49.0

  32. {12, 28, 96, 12, 96, 12, 7, 7, 40, 28, 55, 96}

    11

    0

    Returns: 96.0

  33. {90, 91, 91, 91, 91, 91, 91, 90, 92, 90, 90, 91, 91, 90, 92, 91, 90, 91, 92, 90, 91, 92, 90, 91, 90, 92, 92}

    5

    20

    Returns: 90.0

  34. {90, 90, 89, 92, 91, 89, 89, 92, 90, 88, 89, 92, 91, 92, 89, 91, 91, 90, 88, 89, 90, 90, 88, 89, 91, 89, 92, 89, 89, 89, 91, 88, 90, 92, 89, 91, 92, 89, 91, 90, 90, 88, 89}

    5

    15

    Returns: 89.3913043478261

  35. {35, 90, 41, 56, 35, 56, 77}

    2

    3

    Returns: 48.5

  36. {63, 62, 59, 59, 63, 59, 58, 62, 58, 62, 62}

    8

    0

    Returns: 62.666666666666664

  37. {39, 50, 27, 2, 2, 2, 90, 2, 90, 0, 27, 50, 27, 0, 2, 39, 2, 57, 12, 50, 0, 50, 12, 0, 53, 53, 27, 53, 27}

    11

    15

    Returns: 22.0

  38. {28, 26, 29, 28, 33, 31, 25, 32, 25, 29, 31, 34, 30, 30, 30, 30, 29, 25, 30, 26, 26, 33, 25, 31, 28, 26, 30, 31, 30, 25, 30, 26, 27, 31, 34, 32, 28, 30, 29, 29, 34, 34, 34, 32, 29, 32, 34, 26, 31, 30}

    12

    12

    Returns: 29.692307692307693

  39. {14, 14, 15, 12, 11, 13, 14, 14, 13, 12, 13, 15, 14, 15, 11, 12, 12, 13, 10, 13, 10, 11, 14, 11, 11, 10, 12, 12, 15, 14, 10, 14, 12, 13, 15, 11, 15, 11, 11, 13, 14, 11, 15, 13}

    4

    18

    Returns: 11.863636363636363

  40. {91, 92, 94, 93, 95, 95, 91, 92, 93, 95, 95, 94, 91, 93, 92, 92, 92, 92, 92, 92, 93, 95, 95, 94, 91, 94}

    3

    6

    Returns: 92.6470588235294

  41. {79, 79, 67, 56, 67, 67, 36, 36, 56, 91, 84, 56, 79, 67, 79, 56, 84, 79, 84, 91, 67, 79, 91, 84, 36, 56, 91, 36, 56, 79, 67, 36, 67, 79, 79, 67, 79, 91, 84, 91}

    3

    9

    Returns: 67.92857142857143

  42. {9, 11, 9, 10, 10, 11, 7, 11, 7, 11, 11, 11, 8, 10, 9, 10, 8, 10, 8, 9, 10, 8, 10, 9, 11, 8, 8, 9, 9, 8, 7, 11, 10, 10}

    0

    0

    Returns: 9.352941176470589

  43. {78, 77, 78, 82, 77, 80, 82, 80, 79, 83, 83, 77, 81, 81, 80, 77, 79, 77, 80, 80, 83, 78, 78, 78}

    0

    2

    Returns: 79.18181818181819

  44. {92, 93, 91, 93, 93, 93, 93, 93, 89, 92, 91, 89, 92, 89, 90, 90, 93, 92, 91, 92}

    2

    0

    Returns: 91.83333333333333

  45. {26, 61, 27, 26, 41, 27, 41, 47, 47, 47, 26, 26, 26, 26, 27, 27, 41, 27, 27, 47, 47, 41, 27, 89, 41, 61, 61, 41, 41, 89, 26, 41}

    6

    1

    Returns: 42.0

  46. {1, 1, 1, 1 }

    1

    1

    Returns: 1.0

  47. {1, 2, 3, 4, 5 }

    0

    1

    Returns: 2.5

  48. {2, 100, 4, 3, 5, 1, 9, 0, 0, 8, 3, 7, 3, 7, 3 }

    2

    10

    Returns: 2.0

  49. {31, 52, 20, 86, 47, 76, 82, 27, 42, 29 }

    1

    4

    Returns: 35.2

  50. {30 }

    0

    0

    Returns: 30.0

  51. {9, 30, 22, 30, 19, 14, 13, 23, 17, 29, 21, 23, 27, 22, 26, 20, 20, 20, 38, 30, 28, 30, 28, 19, 31, 29, 19, 23, 17, 32, 20, 20, 17, 32, 6, 25, 27, 17, 31, 14, 16, 15, 37, 27, 24, 21, 19, 29, 42, 10 }

    5

    1

    Returns: 24.181818181818183

  52. {15, 16, 80 }

    2

    0

    Returns: 80.0

  53. {70, 99, 96, 0, 30, 100, 100, 0, 0 }

    1

    1

    Returns: 56.42857142857143

  54. {1, 2, 4, 7, 14, 25, 34, 59, 78, 100 }

    3

    3

    Returns: 20.0


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: