Problem Statement
There are N coders in the contest, including you. Each coder has a skill measurement called rating. This information is given in ratings, where ratings[0] is your rating and ratings[1] through ratings[N-1] are the ratings of the other coders. Ratings of all coders are pairwise distinct.
You are now in the room assignment phase of the contest. There are K available rooms. Each coder will be assigned to exactly one room in the following way: the coders, in descending order of their ratings, are assigned one-by-one to rooms 1, 2, ..., K, 1, 2, ..., K, ... and so on in that order. See the examples for further clarification.
You wish to win your room, so you wonder how many stronger competitors you have. Return the number of coders in your room who have higher ratings than yours.
Definition
- Class:
- SRMRoomAssignmentPhase
- Method:
- countCompetitors
- Parameters:
- int[], int
- Returns:
- int
- Method signature:
- int countCompetitors(int[] ratings, int K)
- (be sure your method is public)
Constraints
- ratings will contain between 2 and 50 elements, inclusive.
- Each element of ratings will be between 0 and 1199, inclusive.
- All elements of ratings will be distinct.
- K will be between 1 and the number of elements in ratings, inclusive.
Examples
{491, 981, 1199, 763, 994, 879, 888}
3
Returns: 2
Here is the room assignment for all coders. Room 1 coders' ratings: 1199 888 491 Room 2 coders' ratings: 994 879 Room 3 coders' ratings: 981 763 You are in Room 1, and there are 2 coders with greater ratings than yours.
{1024, 1000, 600}
1
Returns: 0
You are the highest rated coder in Room 1.
{505, 679, 900, 1022}
2
Returns: 1
You are the lowest rated coder in Room 2.
{716, 58, 1000, 1004, 912, 822, 453, 1100, 558}
3
Returns: 1
You are the second highest rated coder in Room 3.
{422, 623, 1023, 941, 882, 776, 852, 495, 803, 622, 618, 532, 751, 500}
4
Returns: 3
{1197, 1198, 1196, 1195, 1199}
1
Returns: 2
{0, 1}
2
Returns: 0
{1199, 1198}
2
Returns: 0
{1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150}
7
Returns: 0
{1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150}
50
Returns: 0
{151, 534}
2
Returns: 0
{734, 808, 878}
1
Returns: 2
{659, 1122, 274, 806}
2
Returns: 1
{316, 1189, 740, 414, 674}
1
Returns: 4
{207, 289, 222, 567, 440, 832}
2
Returns: 2
{607, 99, 312, 1173, 932, 621, 1181}
5
Returns: 0
{123, 971, 1099, 1019, 883, 863, 78, 922}
2
Returns: 3
{73, 703, 1038, 1182, 724, 95, 994, 358, 826}
2
Returns: 4
{20, 235, 522, 620, 438, 156, 278, 1143, 756, 816}
9
Returns: 1
{176, 720, 1165, 809, 214, 394, 103, 170, 208, 474, 826}
1
Returns: 8
{1, 1021, 809, 1052, 645, 1087, 359, 954, 175, 307, 968, 120}
2
Returns: 5
{207, 899, 289, 387, 321, 293, 846, 475, 882, 743, 311, 379, 531}
2
Returns: 6
{365, 784, 251, 899, 753, 481, 439, 512, 637, 162, 830, 776, 460, 957}
7
Returns: 1
{1002, 504, 380, 1120, 423, 21, 172, 664, 1067, 347, 931, 1012, 923, 718, 105}
15
Returns: 0
{140, 252, 303, 403, 507, 830, 338, 785, 437, 673, 10, 199, 710, 907, 812, 1066}
4
Returns: 3
{353, 430, 756, 1157, 942, 561, 135, 1104, 404, 812, 1057, 872, 662, 885, 1059, 630, 408}
3
Returns: 5
{466, 935, 965, 169, 692, 768, 817, 185, 758, 1004, 747, 205, 1070, 1166, 1196, 738, 1071, 736}
9
Returns: 1
{74, 729, 1191, 26, 1089, 400, 839, 391, 1128, 871, 966, 944, 472, 832, 395, 187, 1176, 99, 758}
7
Returns: 2
{1000, 852, 496, 1194, 372, 214, 438, 274, 1085, 180, 360, 176, 381, 971, 698, 806, 1073, 163, 110, 2}
18
Returns: 0
{414, 1038, 796, 364, 1003, 1016, 643, 578, 653, 462, 923, 732, 674, 635, 293, 1172, 1070, 53, 627, 197, 58}
15
Returns: 1
{200, 810, 395, 344, 774, 346, 720, 396, 1166, 552, 1193, 1113, 19, 338, 1114, 892, 332, 671, 694, 258, 502, 277}
10
Returns: 2
{17, 848, 495, 514, 733, 627, 112, 131, 747, 844, 134, 329, 941, 204, 402, 1168, 654, 838, 847, 852, 133, 916, 843}
21
Returns: 1
{419, 617, 1165, 213, 900, 388, 446, 921, 1045, 928, 511, 1134, 86, 9, 946, 662, 980, 952, 814, 1047, 1030, 104, 880, 244}
2
Returns: 8
{195, 1128, 340, 336, 800, 53, 324, 337, 725, 1007, 1155, 417, 1118, 713, 909, 108, 71, 92, 979, 814, 486, 1106, 256, 804, 925}
5
Returns: 4
{123, 1000, 852, 484, 943, 2, 1191, 825, 908, 1153, 821, 506, 112, 1101, 164, 378, 274, 1039, 622, 859, 646, 409, 922, 170, 627, 670}
4
Returns: 5
{184, 1147, 1162, 59, 297, 1079, 748, 728, 474, 257, 472, 725, 1067, 918, 699, 682, 790, 685, 1198, 136, 984, 778, 932, 563, 577, 353, 1017}
3
Returns: 8
{53, 1058, 242, 578, 1169, 664, 539, 544, 362, 522, 724, 974, 697, 68, 89, 1052, 468, 323, 1071, 1091, 1107, 538, 490, 408, 916, 937, 997, 995}
1
Returns: 27
{325, 1022, 268, 350, 337, 799, 515, 475, 221, 406, 1031, 1156, 251, 1174, 149, 551, 130, 93, 1198, 237, 965, 744, 599, 840, 269, 367, 43, 208, 747}
2
Returns: 9
{355, 596, 58, 563, 276, 338, 279, 607, 218, 525, 854, 163, 484, 5, 807, 966, 499, 160, 739, 656, 153, 518, 993, 586, 967, 1118, 985, 911, 251, 862}
2
Returns: 9
{67, 245, 634, 914, 1088, 1132, 979, 1124, 230, 1151, 409, 284, 479, 829, 404, 296, 525, 720, 632, 478, 483, 444, 947, 853, 131, 585, 1136, 191, 259, 509, 447}
10
Returns: 3
{230, 353, 328, 434, 871, 92, 1153, 886, 1183, 621, 165, 847, 500, 331, 583, 945, 438, 644, 996, 795, 340, 976, 736, 1158, 691, 301, 656, 958, 971, 39, 223, 137}
5
Returns: 5
{21, 138, 764, 875, 5, 152, 293, 688, 951, 945, 772, 28, 550, 214, 1193, 254, 654, 766, 92, 299, 53, 1092, 267, 465, 690, 857, 901, 1018, 1152, 1031, 917, 294, 1148}
30
Returns: 1
{286, 125, 950, 1051, 591, 402, 621, 757, 583, 8, 1106, 336, 475, 143, 51, 69, 16, 128, 150, 590, 1041, 540, 1073, 106, 884, 1138, 710, 900, 922, 834, 413, 636, 1062, 32}
15
Returns: 1
{106, 907, 502, 1024, 647, 325, 122, 978, 676, 947, 1103, 234, 331, 264, 1017, 88, 1085, 635, 208, 1186, 569, 515, 604, 214, 916, 662, 263, 1132, 1020, 176, 1012, 134, 1120, 457, 226}
6
Returns: 5
{434, 1013, 131, 393, 1141, 1112, 784, 256, 1042, 942, 938, 10, 494, 669, 116, 641, 1132, 19, 1198, 97, 976, 1092, 469, 500, 337, 720, 164, 644, 856, 959, 806, 738, 103, 1164, 607, 1057}
2
Returns: 12
{544, 447, 730, 437, 1183, 348, 1176, 970, 657, 131, 847, 723, 180, 481, 1092, 814, 202, 733, 912, 587, 518, 1105, 758, 1081, 126, 645, 352, 656, 109, 354, 793, 944, 826, 900, 1059, 70, 272}
4
Returns: 5
{5, 441, 382, 1193, 842, 780, 845, 334, 833, 1028, 1076, 575, 1052, 641, 1078, 384, 302, 580, 131, 859, 1186, 430, 374, 672, 261, 779, 1062, 406, 936, 664, 112, 744, 562, 595, 535, 234, 835, 77}
11
Returns: 3
{232, 889, 848, 223, 1176, 894, 342, 1133, 628, 266, 44, 1089, 351, 572, 407, 512, 90, 448, 939, 756, 849, 249, 1014, 1071, 257, 530, 846, 227, 976, 1146, 176, 174, 451, 101, 725, 284, 1039, 1112, 609}
31
Returns: 1
{639, 730, 774, 35, 479, 267, 1165, 618, 225, 329, 963, 451, 178, 1163, 367, 377, 801, 219, 883, 126, 755, 847, 172, 42, 497, 1051, 656, 48, 140, 567, 631, 264, 719, 775, 284, 266, 358, 928, 51, 741}
4
Returns: 3
{786, 921, 545, 519, 406, 419, 1143, 1089, 710, 1022, 268, 198, 987, 694, 777, 10, 285, 768, 833, 1068, 1190, 325, 412, 120, 274, 483, 71, 754, 712, 409, 58, 591, 282, 1142, 1045, 1072, 637, 400, 448, 1078, 382}
5
Returns: 2
{61, 1098, 555, 579, 120, 1010, 1146, 427, 359, 1154, 1037, 462, 986, 865, 430, 343, 726, 92, 465, 835, 485, 402, 907, 884, 958, 477, 1186, 78, 64, 589, 244, 1156, 283, 217, 587, 1081, 166, 773, 691, 400, 1055, 344}
4
Returns: 10
{573, 813, 392, 280, 355, 550, 807, 342, 990, 222, 446, 1052, 453, 54, 689, 784, 1174, 668, 409, 622, 383, 1017, 1085, 229, 172, 745, 1057, 23, 804, 569, 935, 242, 916, 6, 946, 509, 1162, 864, 995, 859, 1054, 353, 201}
7
Returns: 3
{67, 753, 182, 326, 1096, 370, 1156, 381, 1170, 398, 910, 89, 474, 150, 572, 1198, 938, 247, 1004, 448, 568, 862, 345, 464, 881, 663, 145, 363, 1111, 43, 329, 131, 580, 931, 980, 121, 886, 305, 425, 217, 688, 689, 337, 442}
10
Returns: 4
{12, 1006, 586, 1042, 115, 694, 322, 1052, 634, 269, 702, 291, 1066, 96, 917, 301, 605, 81, 801, 459, 356, 199, 884, 442, 566, 1101, 210, 792, 202, 25, 294, 706, 460, 179, 854, 1114, 1004, 408, 1167, 88, 848, 1010, 736, 855, 1152}
9
Returns: 4
{25, 294, 1154, 1035, 422, 283, 303, 456, 434, 330, 577, 423, 1091, 38, 937, 539, 829, 478, 864, 637, 1103, 52, 642, 1076, 8, 396, 1163, 522, 1151, 896, 925, 346, 604, 659, 748, 687, 495, 704, 207, 206, 760, 331, 194, 1166, 1108, 442}
1
Returns: 44
{290, 84, 94, 317, 284, 1156, 590, 784, 560, 349, 860, 399, 301, 767, 1178, 373, 618, 252, 1068, 498, 294, 689, 28, 661, 1169, 149, 111, 899, 224, 601, 246, 426, 902, 465, 495, 62, 454, 1159, 485, 258, 11, 1003, 296, 393, 137, 131, 205}
1
Returns: 31
{275, 3, 31, 1171, 134, 68, 401, 498, 393, 179, 219, 1114, 751, 404, 1155, 359, 573, 635, 1087, 1176, 286, 861, 747, 1108, 599, 205, 433, 1167, 657, 790, 115, 461, 610, 1086, 1096, 266, 536, 305, 278, 979, 398, 169, 904, 800, 209, 881, 443, 855}
10
Returns: 3
{6, 1004, 196, 1001, 309, 978, 1095, 451, 878, 716, 447, 172, 165, 1000, 54, 905, 392, 164, 747, 232, 611, 397, 600, 375, 302, 522, 634, 623, 640, 751, 198, 428, 812, 965, 337, 975, 296, 1073, 590, 642, 556, 115, 984, 794, 87, 987, 343, 837, 53}
2
Returns: 24
{39, 352, 118, 240, 219, 70, 558, 1091, 120, 125, 1130, 175, 585, 1154, 115, 1128, 664, 183, 765, 343, 299, 201, 565, 220, 834, 190, 355, 1099, 950, 1056, 631, 1191, 1010, 1065, 1126, 638, 64, 564, 420, 471, 1189, 480, 260, 83, 257, 801, 584, 634, 1070, 45}
1
Returns: 49
{2, 1, 3 }
2
Returns: 0
{6, 8, 5, 7 }
2
Returns: 1
{422, 623, 1023, 941, 882, 776, 852, 495, 803, 622, 618, 532, 751, 500 }
4
Returns: 3
{4, 3, 5 }
2
Returns: 0
{1000, 1002, 900, 1005 }
2
Returns: 1
{3, 2, 6, 1, 5, 4 }
2
Returns: 1
{6, 3, 4, 5, 2, 7, 8 }
3
Returns: 0
{15, 14, 13, 12, 16 }
2
Returns: 0
{422, 555, 102, 941, 882, 776, 852, 666, 803, 622, 618, 532, 751, 500 }
1
Returns: 12
{2, 3, 1, 4 }
2
Returns: 1
{20, 40, 10, 21 }
3
Returns: 0
{2, 3, 4, 1, 5, 6 }
3
Returns: 1
{10, 5, 200, 500 }
3
Returns: 0
{500, 981, 1199, 499, 994, 879, 498 }
3
Returns: 1
{1, 2, 0, 3 }
2
Returns: 1
{2, 1, 5, 3, 4 }
2
Returns: 1
{77, 2, 233, 24, 825, 26, 927, 20, 300, 40, 500, 60, 700, 80 }
2
Returns: 3
{5, 10, 3, 11 }
2
Returns: 1
{480, 450, 500, 550, 530 }
2
Returns: 1
{5, 1, 2, 7, 4, 6, 3 }
2
Returns: 1
{102, 103, 100, 104, 101 }
2
Returns: 1
{200, 199, 201, 198, 190 }
2
Returns: 0
{5, 2, 3, 4, 6, 1 }
2
Returns: 0
{1, 0, 2 }
2
Returns: 0
{20, 13, 234, 435, 34, 2, 45, 56, 67, 68, 69, 58, 59, 90, 78, 98 }
15
Returns: 0
{2, 1, 10 }
2
Returns: 0
{2, 1, 3, 4 }
2
Returns: 1
{5, 1, 3, 6, 9 }
3
Returns: 0
{10, 20, 5, 30 }
2
Returns: 1
{9, 10, 11, 12, 8, 7, 6, 5, 4, 3, 2, 1 }
3
Returns: 1
{10, 11, 9, 12, 8, 13, 7, 14, 6, 19, 3 }
2
Returns: 2
{3, 2, 6, 8, 7 }
5
Returns: 0
{2, 1 }
1
Returns: 0
{3, 5, 1, 6, 2 }
2
Returns: 1
{900, 2, 1000, 3 }
2
Returns: 0
{2, 4, 1, 3 }
2
Returns: 1
{100, 200, 300, 50, 400, 500, 550, 600 }
3
Returns: 2
{1000, 1100, 0, 1150, 5 }
2
Returns: 1
{3, 6, 5, 1, 2, 4 }
3
Returns: 1
{716, 1001, 1002, 10, 1003, 1004, 90, 1005, 1006 }
3
Returns: 2
{3, 4, 1, 5, 2 }
2
Returns: 1
{2, 3, 1, 5 }
2
Returns: 1
{3, 2, 4 }
2
Returns: 0
{1197, 1198, 1196, 1195, 1199 }
1
Returns: 2
{2, 1, 3, 4, 5, 6, 7 }
3
Returns: 1
{2, 1, 4, 5 }
2
Returns: 1