Statistics

Problem Statement for "CSCourse"

Problem Statement

Professor M wants his class to compete in TopCoder events. Students will be required to compete a minimum of three times during the semester.

Possible grades (in descending order) are "A", "B", "C", "D", or "F". If the student does not compete in at least three events, an "A" will be reduced to a "B", a "B" will be reduced to a "C", a "C" will be reduced to a "D", and a "D" will be reduced to an "F". As "F" is the lowest grade possible, it will not be reduced further.

An initial grade is determined by the total score over 5 assignments; each assignment is worth 20 points, and the student grade for an assignment will be between 0 and 20 (inclusive). Total scores determine an initial grade as follows.

  • 90 to 100 (inclusive): A
  • 80 to 89 (inclusive): B
  • 70 to 79 (inclusive): C
  • 60 to 69 (inclusive): D
  • Below 60: F

Create a class CSCourse which contains a method finalgrade that takes a int[] scores which contains a student's scores on each of the five assignments, and an int events which represents the number of TopCoder events in which that student participated, and returns a String representing that student's final grade.

Definition

Class:
CSCourse
Method:
finalgrade
Parameters:
int[], int
Returns:
String
Method signature:
String finalgrade(int[] scores, int events)
(be sure your method is public)

Constraints

  • scores will contain exactly 5 elements.
  • Each element of scores will be between 0 and 20, inclusive.
  • events will be between 0 and 100, inclusive.

Examples

  1. {20,20,20,20,20}

    3

    Returns: "A"

    This student got a perfect score, and competed in three events.

  2. {20,20,20,20,19}

    0

    Returns: "B"

    This student has an almost perfect score, but is reduced to a B because he did not compete in TopCoder events.

  3. {0,0,0,0,0}

    0

    Returns: "F"

  4. {20,20,20,20,0}

    3

    Returns: "B"

  5. {20,20,20,20,0}

    0

    Returns: "C"

  6. {20,20,20,0,0}

    3

    Returns: "D"

  7. {10,10,10,10,20}

    88

    Returns: "D"

  8. {20,20,20,20,10}

    3

    Returns: "A"

  9. {20,20,20,20,9}

    3

    Returns: "B"

  10. {20,20,10,20,9}

    3

    Returns: "C"

  11. {10,20,20,9,10}

    2

    Returns: "F"

  12. {10,10,10,10,10}

    3

    Returns: "F"

  13. {11,11,11,11,11}

    3

    Returns: "F"

  14. {14,14,14,14,14}

    2

    Returns: "D"

  15. {13,13,13,13,13}

    3

    Returns: "D"

  16. {14,14,14,14,14}

    3

    Returns: "C"

  17. {15,15,15,15,15}

    3

    Returns: "C"

  18. {16,16,16,16,16}

    3

    Returns: "B"

  19. {17,17,17,17,17}

    3

    Returns: "B"

  20. {18,18,18,18,18}

    3

    Returns: "A"

  21. {10,10,10,10,10}

    2

    Returns: "F"

  22. {11,11,11,11,11}

    2

    Returns: "F"

  23. {12,12,12,12,12}

    2

    Returns: "F"

  24. {13,13,13,13,13}

    2

    Returns: "F"

  25. {14,14,14,14,14}

    2

    Returns: "D"

  26. {15,15,15,15,15}

    2

    Returns: "D"

  27. {16,16,16,16,16}

    2

    Returns: "C"

  28. {17,17,17,17,17}

    2

    Returns: "C"

  29. {18,18,18,18,18}

    2

    Returns: "B"

  30. { 20, 20, 20, 20, 20 }

    2

    Returns: "B"

  31. { 20, 20, 20, 20, 20 }

    1

    Returns: "B"

  32. { 20, 20, 20, 20, 20 }

    0

    Returns: "B"

  33. { 20, 20, 20, 0, 10 }

    2

    Returns: "D"

  34. { 20, 20, 20, 20, 10 }

    3

    Returns: "A"

  35. { 20, 20, 20, 9, 0 }

    3

    Returns: "D"

  36. { 20, 20, 20, 20, 20 }

    3

    Returns: "A"

  37. { 20, 20, 20, 20, 10 }

    1

    Returns: "B"

  38. { 10, 10, 10, 10, 10 }

    2

    Returns: "F"

  39. { 20, 20, 20, 5, 0 }

    3

    Returns: "D"

  40. { 20, 20, 20, 20, 20 }

    5

    Returns: "A"

  41. { 0, 0, 0, 0, 0 }

    0

    Returns: "F"

  42. { 20, 20, 20, 20, 0 }

    3

    Returns: "B"

  43. { 20, 20, 20, 0, 0 }

    0

    Returns: "F"

  44. { 20, 20, 20, 10, 10 }

    5

    Returns: "B"

  45. { 20, 20, 20, 20, 10 }

    0

    Returns: "B"

  46. { 10, 10, 10, 10, 20 }

    2

    Returns: "F"

  47. { 20, 20, 20, 3, 2 }

    0

    Returns: "F"

  48. { 20, 20, 20, 0, 0 }

    2

    Returns: "F"

  49. { 20, 20, 20, 10, 10 }

    3

    Returns: "B"

  50. { 12, 12, 12, 12, 12 }

    1

    Returns: "F"

  51. { 20, 9, 20, 20, 20 }

    1

    Returns: "C"

  52. { 20, 20, 20, 20, 0 }

    1

    Returns: "C"

  53. { 20, 20, 20, 10, 0 }

    3

    Returns: "C"

  54. { 1, 1, 1, 1, 1 }

    3

    Returns: "F"

  55. { 20, 20, 20, 3, 0 }

    2

    Returns: "F"

  56. { 15, 15, 15, 20, 20 }

    0

    Returns: "C"

  57. { 12, 12, 12, 12, 12 }

    0

    Returns: "F"

  58. { 20, 20, 20, 20, 20 }

    2

    Returns: "B"

  59. { 20, 20, 20, 20, 20 }

    1

    Returns: "B"

  60. { 20, 20, 20, 20, 20 }

    0

    Returns: "B"

  61. { 20, 20, 20, 0, 10 }

    2

    Returns: "D"

  62. { 20, 20, 20, 20, 10 }

    3

    Returns: "A"

  63. { 20, 20, 20, 9, 0 }

    3

    Returns: "D"

  64. { 20, 20, 20, 20, 20 }

    3

    Returns: "A"

  65. { 20, 20, 20, 20, 10 }

    1

    Returns: "B"

  66. { 10, 10, 10, 10, 10 }

    2

    Returns: "F"

  67. { 20, 20, 20, 5, 0 }

    3

    Returns: "D"

  68. { 20, 20, 20, 20, 20 }

    5

    Returns: "A"

  69. { 0, 0, 0, 0, 0 }

    0

    Returns: "F"

  70. { 20, 20, 20, 20, 0 }

    3

    Returns: "B"

  71. { 20, 20, 20, 0, 0 }

    0

    Returns: "F"

  72. { 20, 20, 20, 10, 10 }

    5

    Returns: "B"

  73. { 20, 20, 20, 20, 10 }

    0

    Returns: "B"

  74. { 10, 10, 10, 10, 20 }

    2

    Returns: "F"

  75. { 20, 20, 20, 3, 2 }

    0

    Returns: "F"

  76. { 20, 20, 20, 0, 0 }

    2

    Returns: "F"

  77. { 20, 20, 20, 10, 10 }

    3

    Returns: "B"

  78. { 12, 12, 12, 12, 12 }

    1

    Returns: "F"

  79. { 20, 9, 20, 20, 20 }

    1

    Returns: "C"

  80. { 20, 20, 20, 20, 0 }

    1

    Returns: "C"

  81. { 20, 20, 20, 10, 0 }

    3

    Returns: "C"

  82. { 1, 1, 1, 1, 1 }

    3

    Returns: "F"

  83. { 20, 20, 20, 3, 0 }

    2

    Returns: "F"

  84. { 15, 15, 15, 20, 20 }

    0

    Returns: "C"

  85. { 12, 12, 12, 12, 12 }

    0

    Returns: "F"

  86. { 20, 20, 20, 20, 20 }

    2

    Returns: "B"

  87. { 20, 20, 20, 20, 20 }

    1

    Returns: "B"

  88. { 20, 20, 20, 20, 20 }

    0

    Returns: "B"

  89. { 20, 20, 20, 0, 10 }

    2

    Returns: "D"

  90. { 20, 20, 20, 20, 10 }

    3

    Returns: "A"

  91. { 20, 20, 20, 9, 0 }

    3

    Returns: "D"

  92. { 20, 20, 20, 20, 20 }

    3

    Returns: "A"

  93. { 20, 20, 20, 20, 10 }

    1

    Returns: "B"

  94. { 10, 10, 10, 10, 10 }

    2

    Returns: "F"

  95. { 20, 20, 20, 5, 0 }

    3

    Returns: "D"

  96. { 20, 20, 20, 20, 20 }

    5

    Returns: "A"

  97. { 0, 0, 0, 0, 0 }

    0

    Returns: "F"

  98. { 20, 20, 20, 20, 0 }

    3

    Returns: "B"

  99. { 20, 20, 20, 0, 0 }

    0

    Returns: "F"

  100. { 20, 20, 20, 10, 10 }

    5

    Returns: "B"

  101. { 20, 20, 20, 20, 10 }

    0

    Returns: "B"

  102. { 10, 10, 10, 10, 20 }

    2

    Returns: "F"

  103. { 20, 20, 20, 3, 2 }

    0

    Returns: "F"

  104. { 20, 20, 20, 0, 0 }

    2

    Returns: "F"

  105. { 20, 20, 20, 10, 10 }

    3

    Returns: "B"

  106. { 12, 12, 12, 12, 12 }

    1

    Returns: "F"

  107. { 20, 9, 20, 20, 20 }

    1

    Returns: "C"

  108. { 20, 20, 20, 20, 0 }

    1

    Returns: "C"

  109. { 20, 20, 20, 10, 0 }

    3

    Returns: "C"

  110. { 1, 1, 1, 1, 1 }

    3

    Returns: "F"

  111. { 20, 20, 20, 3, 0 }

    2

    Returns: "F"

  112. { 15, 15, 15, 20, 20 }

    0

    Returns: "C"

  113. { 12, 12, 12, 12, 12 }

    0

    Returns: "F"


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: