Statistics

Problem Statement for "TestCurve"

Problem Statement

A teacher has graded a test, and you are given a int[] scores representing each student's raw score on the test. The teacher wants to convert the scores into grades such that a raw score of 0 receives a grade of 0, and the highest raw score achieved by any student receives a grade of 100. All other scores in between are calculated proportionally, always rounded down. You are to return a int[] (with the same number of elements as scores) containing the calculated grade for each student. Element i of the return should be the grade for scores[i].

Definition

Class:
TestCurve
Method:
determineGrades
Parameters:
int[]
Returns:
int[]
Method signature:
int[] determineGrades(int[] scores)
(be sure your method is public)

Constraints

  • scores will contain between 1 and 50 elements, inclusive.
  • Each element of scores will be between 0 and 10000, inclusive.
  • At least one element of scores will be greater than 0.

Examples

  1. {15, 27, 8, 33, 19, 50}

    Returns: {30, 54, 16, 66, 38, 100 }

    Since the highest score is a 50, which gets scaled to a grade of 100, everyone's grade is exactly twice their raw score.

  2. {0, 0, 0, 3}

    Returns: {0, 0, 0, 100 }

    All but one person did poorly on this test.

  3. {67, 89, 72, 100, 95, 88}

    Returns: {67, 89, 72, 100, 95, 88 }

    With a highest score of 100, the grade is exactly the raw score.

  4. {1234, 3483, 234, 5738, 3421, 5832, 4433}

    Returns: {21, 59, 4, 98, 58, 100, 76 }

  5. {8765}

    Returns: {100 }

  6. {8961,3353,4908,2919,236,6112,9381,3762,7426,7885,6534,7383,3821,9424,2242,1783,8545,3987,4852,7551,2953,8128,2834,4894,9548}

    Returns: {93, 35, 51, 30, 2, 64, 98, 39, 77, 82, 68, 77, 40, 98, 23, 18, 89, 41, 50, 79, 30, 85, 29, 51, 100 }

  7. {4946,3172,3378,9983,2881,2925,5948,9286,6430,405,1624,402,1135,4611,6541,5560,8449,6814,2,7461,8386,2593,8400,7567,4680}

    Returns: {49, 31, 33, 100, 28, 29, 59, 93, 64, 4, 16, 4, 11, 46, 65, 55, 84, 68, 0, 74, 84, 25, 84, 75, 46 }

  8. {1603,6883,2447,8420,1881,9236,8332,4440,5298,7054,3170,7545,5624,9653,7143,2816,740,4013,7434,4329,1546,8063,8384,4684,3365,6457,4150,7039,9849,8864,3857,9638}

    Returns: {16, 69, 24, 85, 19, 93, 84, 45, 53, 71, 32, 76, 57, 98, 72, 28, 7, 40, 75, 43, 15, 81, 85, 47, 34, 65, 42, 71, 100, 89, 39, 97 }

  9. {738,9260,2846,4012,6612,4894,8679,804,5866,737,2831,5800,1019,7361,9214,395,8505,3588,6979,255,1953,6652,56,6719,7976,4848,9182,704,4440,2694,6427,9117,1256,8584,2236,3753,3658,4946,4951,2710,7982,895,2846,4289,9947,7396,8661}

    Returns: {7, 93, 28, 40, 66, 49, 87, 8, 58, 7, 28, 58, 10, 74, 92, 3, 85, 36, 70, 2, 19, 66, 0, 67, 80, 48, 92, 7, 44, 27, 64, 91, 12, 86, 22, 37, 36, 49, 49, 27, 80, 8, 28, 43, 100, 74, 87 }

  10. {5440,4911,6624,481,3796,3564,1994,2879,3578,5793,3084,8780,858,1504,5797,3605,10000,5733}

    Returns: {54, 49, 66, 4, 37, 35, 19, 28, 35, 57, 30, 87, 8, 15, 57, 36, 100, 57 }

  11. {8917,6938,8798,2319}

    Returns: {100, 77, 98, 26 }

  12. {4963,8956,1653,8904,2997,7560,219,2574,6382,6715,7326,35,153,9435,9560,4656,4829,2297,2810,1887}

    Returns: {51, 93, 17, 93, 31, 79, 2, 26, 66, 70, 76, 0, 1, 98, 100, 48, 50, 24, 29, 19 }

  13. {600,6810,5664,8531,6020,2155,7315,3013,6764,9847,6968,8372,231,3314,7456,6734,8166,2952,723,2892,4312,3147,6731,7588}

    Returns: {6, 69, 57, 86, 61, 21, 74, 30, 68, 100, 70, 85, 2, 33, 75, 68, 82, 29, 7, 29, 43, 31, 68, 77 }

  14. {1814,4864,3288,9673,2422,7838,2473,294,8529,8106,8412,4756,810,6760,8447,9157,6595,4945,9772,35,1891,7760,7719}

    Returns: {18, 49, 33, 98, 24, 80, 25, 3, 87, 82, 86, 48, 8, 69, 86, 93, 67, 50, 100, 0, 19, 79, 78 }

  15. {5922,661,6534,3015,8152,8380,2660,9298,7822,6314,519,3232,5981,4446,793,899,14,3743,1205,7254,678,5066,9800,6288,1627,571,725,3679,1448,7626,2515,1953,8191,5202,8870,8137,6400,2794,1934,3915,6644,1819,8085,8289,7551,9524,6206,2727}

    Returns: {60, 6, 66, 30, 83, 85, 27, 94, 79, 64, 5, 32, 61, 45, 8, 9, 0, 38, 12, 74, 6, 51, 100, 64, 16, 5, 7, 37, 14, 77, 25, 19, 83, 53, 90, 83, 65, 28, 19, 39, 67, 18, 82, 84, 77, 97, 63, 27 }

  16. {5390,8474}

    Returns: {63, 100 }

  17. {5823,43,3636,8471,4005,6659,2794,6476,6046,4867,7686,5760,8822,7157,1462,4989,1955,7788,1973,8741,7344,4192,7548,154,1192,882,5274,6091,8543,5856,1780,4787,305,9506,6518,6017,2792,6021,7542,3738,9748,7297,9792,1258,6877}

    Returns: {59, 0, 37, 86, 40, 68, 28, 66, 61, 49, 78, 58, 90, 73, 14, 50, 19, 79, 20, 89, 75, 42, 77, 1, 12, 9, 53, 62, 87, 59, 18, 48, 3, 97, 66, 61, 28, 61, 77, 38, 99, 74, 100, 12, 70 }

  18. {5873,8886,8881,1173,9339,4086,8984,6246,470,4141,969,6336,4559,1302,3708,7957,2686,447,8189,1265,5007,9239,7051,1468,6530,778,6616,2726,5396,8762,1419,4561,3665,5138,1237,761,593,264,626,791,8415,5562,944,3695,623,8675,4892}

    Returns: {62, 95, 95, 12, 100, 43, 96, 66, 5, 44, 10, 67, 48, 13, 39, 85, 28, 4, 87, 13, 53, 98, 75, 15, 69, 8, 70, 29, 57, 93, 15, 48, 39, 55, 13, 8, 6, 2, 6, 8, 90, 59, 10, 39, 6, 92, 52 }

  19. {2755,1119,3535,3135,5667,8451,5843,5816,1320,2908,713,8970,1061,8581,1510,5634,6402,9058,3089,4366,2299,7587,1333}

    Returns: {30, 12, 39, 34, 62, 93, 64, 64, 14, 32, 7, 99, 11, 94, 16, 62, 70, 100, 34, 48, 25, 83, 14 }

  20. {2943,9730,5180,774}

    Returns: {30, 100, 53, 7 }

  21. {8520}

    Returns: {100 }

  22. {8307,3549,2116,408,2928,5060}

    Returns: {100, 42, 25, 4, 35, 60 }

  23. {8231,1874,3478,5441,6103,3838,3350,1030,6214,5373,5644,5959,8499,9799,1019,6367,167,8612,5619,1956}

    Returns: {83, 19, 35, 55, 62, 39, 34, 10, 63, 54, 57, 60, 86, 100, 10, 64, 1, 87, 57, 19 }

  24. {5386,9343,1151,1564,2182,6631,8751,2869,8455,9749,6089,3277,2456,4563,3690,6846,5144,8826,6421,4591,6588,2955,1154,1527,4873,3317,6918,6193,7511,8005,7555,2681,5341,5121,6880,5177,8941,3562,6335}

    Returns: {55, 95, 11, 16, 22, 68, 89, 29, 86, 100, 62, 33, 25, 46, 37, 70, 52, 90, 65, 47, 67, 30, 11, 15, 49, 34, 70, 63, 77, 82, 77, 27, 54, 52, 70, 53, 91, 36, 64 }

  25. {7530,6295,5142,45,375,6139,2966,7005,701,4049,5067,5705,2092,9898,9956,6238,7401,5753,9551,8470,152,1661,1837,4073,8453}

    Returns: {75, 63, 51, 0, 3, 61, 29, 70, 7, 40, 50, 57, 21, 99, 100, 62, 74, 57, 95, 85, 1, 16, 18, 40, 84 }

  26. {0, 1000, 509 }

    Returns: {0, 100, 50 }

  27. {1234, 3483, 234, 5738, 3421, 5832, 4433 }

    Returns: {21, 59, 4, 98, 58, 100, 76 }

  28. {15, 20 }

    Returns: {75, 100 }

  29. {100, 101 }

    Returns: {99, 100 }

  30. {8, 33 }

    Returns: {24, 100 }

  31. {51, 25 }

    Returns: {100, 49 }

  32. {37, 37, 37, 37, 37 }

    Returns: {100, 100, 100, 100, 100 }

  33. {101, 5 }

    Returns: {100, 4 }

  34. {0, 1000, 509 }

    Returns: {0, 100, 50 }

  35. {1234, 3483, 234, 5738, 3421, 5832, 4433 }

    Returns: {21, 59, 4, 98, 58, 100, 76 }

  36. {15, 20 }

    Returns: {75, 100 }

  37. {100, 101 }

    Returns: {99, 100 }

  38. {8, 33 }

    Returns: {24, 100 }

  39. {51, 25 }

    Returns: {100, 49 }

  40. {37, 37, 37, 37, 37 }

    Returns: {100, 100, 100, 100, 100 }

  41. {101, 5 }

    Returns: {100, 4 }

  42. {0, 1000, 509 }

    Returns: {0, 100, 50 }

  43. {1234, 3483, 234, 5738, 3421, 5832, 4433 }

    Returns: {21, 59, 4, 98, 58, 100, 76 }

  44. {15, 20 }

    Returns: {75, 100 }

  45. {100, 101 }

    Returns: {99, 100 }

  46. {8, 33 }

    Returns: {24, 100 }

  47. {51, 25 }

    Returns: {100, 49 }

  48. {37, 37, 37, 37, 37 }

    Returns: {100, 100, 100, 100, 100 }

  49. {101, 5 }

    Returns: {100, 4 }

  50. {0, 1000, 509 }

    Returns: {0, 100, 50 }

  51. {1234, 3483, 234, 5738, 3421, 5832, 4433 }

    Returns: {21, 59, 4, 98, 58, 100, 76 }

  52. {15, 20 }

    Returns: {75, 100 }

  53. {100, 101 }

    Returns: {99, 100 }

  54. {8, 33 }

    Returns: {24, 100 }

  55. {51, 25 }

    Returns: {100, 49 }

  56. {37, 37, 37, 37, 37 }

    Returns: {100, 100, 100, 100, 100 }

  57. {101, 5 }

    Returns: {100, 4 }

  58. {0, 1000, 509 }

    Returns: {0, 100, 50 }

  59. {1234, 3483, 234, 5738, 3421, 5832, 4433 }

    Returns: {21, 59, 4, 98, 58, 100, 76 }

  60. {15, 20 }

    Returns: {75, 100 }

  61. {100, 101 }

    Returns: {99, 100 }

  62. {8, 33 }

    Returns: {24, 100 }

  63. {51, 25 }

    Returns: {100, 49 }

  64. {37, 37, 37, 37, 37 }

    Returns: {100, 100, 100, 100, 100 }

  65. {101, 5 }

    Returns: {100, 4 }

  66. {0, 1000, 509 }

    Returns: {0, 100, 50 }

  67. {1234, 3483, 234, 5738, 3421, 5832, 4433 }

    Returns: {21, 59, 4, 98, 58, 100, 76 }

  68. {15, 20 }

    Returns: {75, 100 }

  69. {100, 101 }

    Returns: {99, 100 }

  70. {8, 33 }

    Returns: {24, 100 }

  71. {51, 25 }

    Returns: {100, 49 }

  72. {37, 37, 37, 37, 37 }

    Returns: {100, 100, 100, 100, 100 }

  73. {101, 5 }

    Returns: {100, 4 }


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: