Connection Status:
Competition Arena > RankingStudents
SRM 782 · 2020-03-26 · by jy_25 · Graph Theory
Class Name: RankingStudents
Return Type: String
Method Name: rankingPossible
Arg Types: (int, vector<int>, vector<int>, vector<int>)
Problem Statement

Problem Statement

You are a teacher of a class with n students, numbered 0, 1, ..., n - 1.

You are given the int[] f with n elements, and the int[]s a, and b, both with the same number of elements. You want to order the students into a line under the following constraints:

  • For each valid i, the number of students before i should not exceed f[i].
  • For each valid i, student a[i] must come before student b[i].

Return "Possible" if such a ranking is possible, and "Impossible" if it isn't.

Constraints

  • n will be between 1 and 1000, inclusive.
  • f will have exactly n elements.
  • Each entry in f will be between 0 and n - 1, inclusive.
  • a will have between 0 and 1000 elements, inclusive.
  • a and b will have the same number of elements.
  • Each element of a and b will be between 0 and n - 1, inclusive.
  • For each valid i, a[i] != b[i]
Examples
0)
3
{0, 1, 2}
{0, 1}
{2, 2}
Returns: "Possible"

Students have to stand in the order 0, 1, 2.

1)
3
{2, 2, 2}
{0, 1, 2}
{1, 2, 0}
Returns: "Impossible"

We cannot satisfy all constraints of the second type.

2)
264
{70, 6, 195, 33, 25, 42, 40, 18, 103, 158, 140, 98, 108, 35, 218, 234, 173, 263, 169, 238, 263, 170, 25, 259, 139, 29, 8, 33, 33, 75, 218, 251, 57, 162, 118, 187, 98, 3, 94, 39, 103, 205, 146, 247, 81, 151, 23, 232, 178, 33, 87, 158, 163, 227, 237, 79, 109, 221, 205, 90, 198, 17, 223, 100, 94, 243, 206, 242, 94, 38, 112, 41, 197, 190, 191, 99, 53, 10, 26, 17, 214, 145, 104, 178, 146, 107, 263, 19, 6, 114, 52, 137, 173, 99, 213, 174, 211, 148, 104, 89, 83, 254, 180, 83, 205, 253, 132, 153, 138, 246, 243, 122, 41, 69, 207, 111, 56, 257, 91, 28, 45, 198, 196, 225, 61, 68, 92, 117, 69, 237, 169, 109, 8, 140, 226, 62, 143, 233, 185, 260, 132, 127, 56, 64, 207, 188, 188, 73, 26, 227, 141, 124, 14, 1, 115, 60, 132, 57, 238, 74, 16, 202, 217, 54, 144, 127, 221, 39, 151, 243, 76, 163, 4, 247, 49, 232, 66, 163, 96, 162, 123, 262, 202, 63, 187, 110, 88, 234, 85, 156, 193, 261, 165, 50, 9, 108, 14, 145, 129, 47, 3, 49, 121, 253, 37, 214, 152, 158, 212, 181, 46, 70, 166, 19, 75, 23, 226, 195, 178, 199, 73, 119, 13, 150, 246, 211, 189, 154, 32, 252, 88, 22, 119, 208, 220, 100, 257, 252, 173, 192, 238, 80, 155, 81, 221, 126, 138, 63, 184, 124, 180, 173, 183, 55, 229, 12, 242, 130, 136, 132, 44, 166, 259, 66}
{20, 39, 253, 166, 215, 178, 228, 14, 124, 159, 65, 179, 11, 228, 171, 80, 197, 198, 131, 57, 99, 191, 124, 83, 156, 85, 172, 177, 54, 222, 40, 0, 67, 246, 6, 62, 241, 13, 54, 202, 24, 77, 172, 208, 208, 9, 165, 28, 135, 39, 160, 176, 235, 211, 219, 100, 109, 36, 28, 224, 128, 72, 163, 246, 112, 26, 67, 117, 235, 40, 121, 125, 152, 4, 10, 193, 187, 174, 124, 175, 71, 140, 149, 84, 53, 180, 45, 153, 31, 48, 87, 68, 133, 242, 160, 141, 10, 258, 145, 236, 196, 235, 91, 222, 20, 263, 261, 219, 103, 127, 94, 30, 218, 137, 1, 80, 101, 173, 105, 227, 162, 135, 258, 244, 10, 204, 159, 155, 43, 156, 162, 144, 158, 38, 97, 147, 200, 139, 81, 224, 72, 36, 9, 121, 179, 216, 109, 75, 82, 231, 225, 61, 261, 149, 198, 219, 128, 248, 237, 56, 89, 249, 82, 224, 178, 147, 171, 232, 121, 55, 49, 248, 262, 84, 16, 222, 22, 221, 198, 231, 56, 85, 244, 180, 116, 31, 19, 179, 246, 184, 12, 221, 98, 51, 55, 49, 210, 226, 208, 135, 142, 179, 100, 192, 231, 133, 146, 120, 130, 119, 235, 201, 24, 82, 183, 188, 161, 55, 134, 152, 84, 78, 130, 69, 34, 128, 7, 175, 30, 199, 243, 130, 22, 95, 194, 143, 189, 160, 161, 1, 217, 215, 188, 87, 110, 192, 180, 193, 97, 55, 56, 182, 59, 224, 221, 120, 9, 91, 170, 180, 240, 144, 216, 190, 148, 117, 47, 8, 208, 43, 138, 93, 247, 58, 237, 227, 150, 233, 249, 30, 50, 82, 114, 132, 191, 25, 129, 79, 28, 232, 131, 144, 111, 109, 220, 189, 180, 34, 224, 121, 140, 29, 82, 234, 55, 143, 224, 67, 234, 36, 77, 100, 205, 27, 79, 78, 166, 14, 197, 116, 52, 165, 238, 117, 198, 126, 3, 91, 153, 248, 148, 200, 92, 224, 106, 179, 163, 192, 160, 130, 98, 52, 219, 47, 156, 152, 259, 203, 124, 208, 172, 101, 141, 142, 89, 184, 65, 85, 205, 7, 200, 106, 52, 25, 208, 176, 123, 177, 208, 170, 120, 123, 133, 245, 88, 218, 221, 25, 196, 72, 253, 215, 140, 207, 143, 212, 115, 19, 135, 204, 60, 173, 22, 187, 30, 22, 98, 145, 253, 255, 120, 122, 145, 12, 224, 30, 169, 35, 121, 97, 164, 63, 178, 92, 210, 82, 150, 186, 137, 251, 28, 185, 9, 152, 82, 187, 151, 227, 254, 92, 186, 50, 28, 68, 82, 239, 66, 128, 169, 154, 196, 262, 90, 115, 45, 152, 238, 129, 90, 43, 256, 140, 16, 188, 18, 36, 108, 81, 213, 79, 221, 246, 131, 141, 204, 158, 142, 127, 120, 42, 237, 131, 214, 139, 69, 194, 229, 207, 229, 93, 112, 101, 38, 246, 153, 250, 2, 257, 197, 194, 210, 185, 185, 187, 79, 169, 228, 121, 121, 70, 33, 166, 91, 47, 34, 43, 137, 187, 57, 177, 163, 238, 186, 35, 66, 43, 193, 57, 263, 135, 109, 173, 35, 91, 112, 160, 97, 53, 8, 251, 34, 251, 122, 217, 12, 42, 183, 234, 232, 154, 7, 170, 119, 188, 166, 15, 79, 260, 67, 46, 137, 163, 42, 228, 66, 199, 103, 54, 253, 53, 55, 67, 73, 135, 239, 20, 153, 0, 226, 152, 72, 6, 139, 73, 213, 46, 26, 172, 0, 250, 215, 162, 259, 100, 112, 108, 100, 51, 74, 74, 8, 128, 224, 240, 90, 2, 214, 232, 115, 116, 206, 11, 246, 112, 41, 30, 163, 236, 178, 171, 135, 203, 262, 217, 97, 225, 70, 169, 15, 1, 23, 149, 120, 32, 13, 161, 77, 259, 250, 43, 140, 165, 131, 7, 111, 58, 244, 27, 76, 191, 63, 131, 7, 73, 51, 239, 180, 89, 153, 233, 55, 207, 172, 80, 86, 8, 91, 10, 175, 204, 208, 24, 153, 186, 190, 254, 41, 13, 91, 72, 165, 81, 47, 37, 70, 83, 256, 105, 210, 199, 91, 179, 111, 191, 115, 24, 73, 19, 159, 255, 169, 25, 105, 234, 111, 223, 143, 29, 8, 100, 161, 193, 224}
{17, 10, 121, 134, 174, 198, 20, 123, 20, 102, 262, 114, 93, 12, 41, 169, 51, 173, 242, 203, 261, 20, 220, 181, 21, 254, 166, 218, 236, 83, 2, 55, 23, 138, 234, 169, 190, 251, 105, 238, 66, 231, 165, 134, 105, 169, 30, 100, 41, 248, 167, 127, 56, 242, 129, 145, 203, 245, 32, 31, 96, 256, 214, 110, 99, 147, 236, 139, 246, 166, 129, 179, 8, 21, 192, 162, 31, 50, 99, 15, 186, 17, 53, 94, 173, 234, 23, 10, 262, 129, 231, 14, 187, 57, 32, 54, 137, 33, 62, 262, 81, 238, 145, 144, 17, 171, 184, 110, 252, 226, 17, 262, 102, 181, 209, 191, 181, 23, 23, 17, 166, 162, 218, 53, 15, 186, 156, 185, 117, 146, 224, 86, 173, 225, 9, 50, 95, 181, 122, 236, 149, 208, 14, 166, 129, 117, 229, 114, 114, 259, 240, 225, 190, 19, 207, 23, 179, 53, 86, 262, 208, 165, 81, 20, 14, 173, 129, 41, 17, 145, 91, 101, 23, 184, 14, 164, 14, 158, 227, 91, 257, 254, 134, 187, 115, 105, 181, 21, 238, 121, 257, 169, 245, 203, 94, 156, 9, 219, 175, 38, 38, 92, 15, 256, 209, 161, 47, 24, 109, 171, 158, 128, 233, 203, 137, 19, 123, 252, 236, 184, 48, 14, 234, 74, 97, 130, 51, 109, 216, 170, 14, 95, 173, 53, 127, 206, 48, 145, 225, 224, 19, 182, 186, 41, 236, 65, 41, 247, 173, 209, 251, 23, 35, 109, 74, 114, 86, 104, 103, 177, 262, 137, 15, 17, 185, 236, 256, 108, 30, 31, 123, 16, 263, 14, 203, 209, 107, 53, 141, 101, 106, 140, 237, 138, 181, 223, 262, 174, 145, 180, 137, 43, 54, 20, 64, 19, 184, 224, 31, 139, 117, 232, 80, 191, 166, 190, 101, 65, 236, 129, 133, 81, 54, 69, 171, 218, 67, 86, 219, 159, 92, 248, 169, 191, 10, 235, 218, 244, 219, 169, 187, 224, 17, 86, 234, 15, 144, 250, 229, 184, 145, 149, 234, 139, 244, 157, 239, 117, 241, 80, 191, 23, 129, 226, 168, 244, 31, 150, 31, 261, 233, 117, 83, 110, 101, 223, 158, 94, 234, 254, 117, 110, 95, 47, 19, 94, 109, 131, 35, 114, 99, 47, 129, 144, 51, 102, 216, 54, 229, 233, 41, 237, 31, 19, 123, 28, 242, 62, 232, 96, 51, 262, 219, 249, 262, 57, 191, 17, 191, 60, 182, 218, 156, 251, 122, 234, 184, 106, 65, 129, 81, 65, 166, 15, 232, 54, 2, 234, 19, 224, 81, 206, 122, 233, 151, 74, 237, 53, 86, 206, 238, 86, 257, 47, 226, 105, 66, 65, 175, 173, 224, 58, 122, 209, 250, 261, 169, 244, 25, 0, 169, 250, 104, 35, 166, 229, 58, 72, 190, 83, 105, 146, 223, 86, 82, 209, 17, 225, 262, 179, 179, 181, 2, 94, 7, 122, 234, 54, 54, 97, 159, 190, 89, 86, 5, 117, 0, 110, 233, 109, 248, 65, 242, 65, 48, 23, 17, 54, 240, 219, 72, 248, 233, 53, 110, 237, 242, 134, 58, 12, 236, 105, 137, 150, 214, 206, 184, 254, 145, 47, 91, 94, 175, 62, 252, 192, 138, 129, 31, 9, 142, 238, 60, 158, 23, 229, 90, 14, 139, 198, 54, 12, 219, 205, 117, 209, 16, 20, 151, 31, 123, 31, 19, 202, 262, 17, 163, 15, 182, 123, 139, 189, 17, 162, 254, 176, 203, 128, 220, 158, 93, 244, 43, 175, 260, 15, 254, 162, 233, 129, 185, 121, 203, 117, 183, 224, 177, 209, 246, 85, 219, 191, 30, 244, 62, 54, 151, 139, 12, 54, 35, 262, 139, 236, 187, 236, 104, 181, 229, 118, 139, 256, 202, 100, 11, 229, 64, 144, 169, 181, 35, 9, 249, 262, 58, 80, 234, 66, 11, 181, 166, 136, 136, 47, 229, 217, 110, 162, 76, 175, 243, 226, 259, 23, 17, 58, 233, 16, 17, 201, 86, 251, 136, 209, 244, 23, 173, 15, 108, 104, 108, 129, 262, 139, 192, 224, 101, 86, 206, 38, 134, 162, 162, 139, 104, 84, 244, 224, 67, 41, 224, 245, 117, 57, 65, 45, 176, 178, 259, 40, 86, 186, 262}
Returns: "Possible"
3)
997
{637, 786, 94, 213, 825, 922, 805, 898, 774, 575, 265, 270, 515, 318, 966, 608, 434, 980, 952, 229, 359, 868, 202, 411, 276, 369, 347, 583, 314, 177, 9, 76, 927, 705, 61, 9, 594, 40, 750, 601, 370, 15, 401, 655, 559, 737, 877, 137, 224, 380, 522, 722, 206, 754, 905, 249, 658, 487, 818, 862, 256, 36, 565, 249, 249, 503, 375, 880, 927, 500, 235, 896, 518, 537, 485, 647, 568, 301, 477, 313, 449, 456, 492, 46, 638, 389, 931, 903, 549, 518, 494, 409, 413, 964, 161, 227, 199, 89, 101, 957, 210, 176, 629, 603, 885, 414, 864, 561, 885, 524, 348, 966, 231, 99, 330, 577, 872, 737, 281, 293, 565, 418, 749, 625, 309, 185, 42, 9, 70, 215, 673, 982, 454, 688, 11, 368, 501, 114, 977, 170, 962, 949, 632, 221, 902, 973, 865, 986, 483, 799, 584, 170, 531, 378, 660, 478, 318, 453, 630, 63, 102, 624, 829, 883, 691, 554, 90, 85, 931, 62, 728, 837, 55, 970, 945, 474, 29, 778, 596, 322, 337, 114, 496, 141, 840, 729, 902, 94, 2, 49, 135, 375, 354, 858, 761, 436, 767, 101, 767, 420, 606, 159, 775, 196, 560, 312, 915, 992, 189, 600, 765, 454, 331, 164, 377, 840, 481, 607, 552, 424, 102, 276, 8, 799, 181, 126, 134, 626, 230, 133, 485, 776, 422, 947, 66, 449, 669, 886, 358, 432, 746, 196, 278, 347, 21, 413, 738, 939, 42, 844, 155, 359, 149, 442, 181, 988, 398, 868, 55, 310, 142, 297, 598, 360, 872, 115, 335, 494, 461, 821, 748, 609, 70, 663, 943, 71, 650, 367, 5, 674, 854, 83, 916, 393, 535, 841, 365, 433, 460, 112, 822, 77, 183, 560, 768, 813, 226, 665, 847, 373, 289, 334, 262, 933, 83, 479, 438, 916, 248, 542, 592, 5, 512, 734, 761, 554, 994, 955, 838, 784, 217, 924, 471, 266, 261, 686, 203, 682, 891, 829, 423, 38, 767, 750, 686, 196, 513, 613, 324, 263, 573, 250, 917, 793, 839, 535, 970, 116, 240, 895, 340, 231, 757, 247, 127, 503, 526, 885, 721, 225, 269, 389, 769, 899, 647, 139, 372, 259, 889, 698, 821, 697, 29, 343, 129, 869, 59, 328, 671, 702, 460, 947, 844, 456, 427, 111, 108, 718, 651, 583, 921, 744, 362, 77, 15, 274, 201, 624, 622, 715, 271, 756, 435, 264, 215, 707, 212, 264, 150, 672, 201, 607, 535, 339, 419, 236, 541, 166, 389, 446, 864, 382, 333, 654, 994, 449, 631, 65, 68, 720, 545, 791, 246, 81, 330, 939, 987, 90, 575, 973, 805, 726, 592, 876, 742, 792, 896, 149, 971, 320, 120, 866, 944, 35, 763, 235, 165, 744, 773, 725, 327, 63, 146, 786, 826, 517, 84, 551, 407, 940, 442, 289, 290, 887, 959, 552, 778, 466, 222, 6, 420, 66, 72, 142, 187, 96, 485, 902, 819, 743, 718, 239, 755, 258, 834, 901, 472, 670, 468, 396, 473, 949, 962, 592, 648, 300, 380, 364, 545, 293, 697, 679, 341, 936, 17, 509, 129, 984, 302, 311, 504, 700, 587, 94, 190, 161, 194, 52, 692, 487, 828, 164, 617, 152, 620, 854, 174, 25, 156, 483, 498, 133, 426, 352, 397, 706, 687, 540, 918, 358, 448, 638, 572, 401, 215, 587, 661, 48, 52, 522, 643, 932, 848, 788, 734, 957, 303, 804, 625, 467, 243, 398, 577, 734, 462, 682, 224, 511, 681, 713, 891, 342, 75, 45, 252, 598, 972, 613, 515, 142, 657, 438, 172, 622, 968, 590, 564, 737, 23, 342, 30, 817, 426, 233, 284, 570, 70, 324, 741, 350, 963, 879, 853, 391, 796, 475, 190, 465, 878, 975, 839, 182, 153, 550, 573, 21, 349, 200, 86, 178, 808, 814, 122, 64, 562, 782, 134, 847, 27, 353, 638, 287, 146, 655, 394, 806, 500, 477, 987, 460, 761, 306, 996, 456, 858, 193, 492, 952, 38, 431, 355, 812, 102, 39, 534, 14, 377, 696, 556, 842, 380, 19, 133, 783, 239, 55, 410, 178, 96, 580, 966, 458, 653, 752, 282, 753, 526, 742, 508, 557, 441, 711, 215, 996, 168, 309, 245, 811, 34, 790, 889, 599, 278, 790, 644, 808, 43, 522, 589, 835, 166, 718, 335, 770, 242, 848, 580, 219, 928, 810, 148, 646, 108, 590, 295, 712, 659, 279, 470, 322, 688, 519, 38, 956, 918, 243, 541, 929, 753, 906, 977, 208, 116, 641, 989, 327, 325, 400, 939, 443, 638, 497, 692, 667, 959, 353, 121, 914, 611, 926, 257, 208, 292, 417, 540, 445, 302, 581, 185, 121, 856, 286, 84, 793, 688, 204, 53, 934, 119, 701, 982, 266, 206, 108, 394, 126, 875, 902, 73, 386, 755, 291, 333, 909, 619, 846, 511, 854, 629, 428, 631, 945, 59, 320, 289, 188, 965, 383, 720, 304, 784, 268, 531, 468, 643, 106, 384, 778, 30, 44, 255, 610, 195, 864, 428, 808, 716, 50, 425, 677, 319, 705, 648, 994, 705, 991, 990, 672, 114, 284, 361, 252, 526, 873, 631, 775, 401, 234, 403, 23, 697, 920, 907, 748, 606, 413, 860, 910, 952, 537, 665, 156, 440, 675, 584, 812, 801, 568, 602, 121, 824, 192, 548, 567, 909, 923, 620, 219, 224, 105, 274, 790, 871, 59, 831, 797, 159, 507, 576, 861, 835, 409, 724, 405, 815, 985, 4, 489, 551, 131, 726, 410, 302, 496, 172, 797, 148, 516, 209, 160, 597, 935, 521, 56, 29, 851, 441, 529, 727, 850, 256, 308, 709, 142, 180, 491, 80, 365, 729, 952, 692, 922, 978, 387, 242, 783, 97, 175, 663, 111, 145, 547, 465, 699, 797, 36, 461, 730, 634, 365, 388, 828, 766, 643, 305, 617, 92, 542, 910, 91, 349, 881, 652, 19, 297, 874, 527, 978, 482, 812, 502, 893, 677, 763, 822, 938, 712, 273, 369, 611, 1, 677, 437, 568, 683, 25, 675, 16, 157, 314, 404, 890, 17, 708, 342, 281, 124}
{605, 903, 349, 214, 424, 977, 36, 7, 257, 259, 406, 853, 716, 530, 835, 339, 325, 992, 868, 377, 128, 440, 559, 862, 596, 523, 410, 952, 247, 763, 486, 891, 55, 747, 419, 255, 119, 276, 781, 981, 68, 173, 335, 897, 362, 138, 399, 534, 449, 94, 456, 685, 254, 741, 911, 299, 584, 829, 552, 793, 833, 894, 641, 850, 881, 132, 893, 508, 426, 1, 58, 547, 913, 880, 983, 375, 956, 617, 692, 866, 623, 352, 702, 3, 928, 246, 488, 805, 142, 194, 399, 109, 198, 315, 812, 545, 724, 415, 220, 272, 880, 244, 435, 761, 6, 67, 984, 660, 310, 731, 839, 737, 113, 550, 95, 39, 434, 641, 493, 51, 583, 633, 739, 825, 239, 987, 975, 819, 443, 29, 178, 834, 139, 283, 456, 936, 641, 664, 73, 185, 237, 198, 409, 329, 769, 208, 911, 62, 117, 137, 738, 175, 720, 658, 420, 895, 478, 792, 883, 88, 62, 32, 826, 820, 182, 790, 495, 347, 701, 266, 972, 824, 468, 619, 210, 909, 912, 681, 544, 919, 821, 171, 472, 590, 678, 667, 863, 413, 715, 627, 928, 429, 93, 435, 95, 694, 844, 289, 874, 772, 885, 813, 338, 436, 447, 154, 756, 305, 733, 510, 598, 408, 387, 248, 796, 883, 592, 354, 134, 117, 253, 517, 62, 346, 121, 350, 849, 213, 587, 174, 685, 941, 794, 512, 61, 578, 912, 744, 565, 612, 915, 543, 549, 737, 177, 418, 621, 331, 874, 108, 370, 119, 161, 452, 590, 564, 45, 913, 232, 230, 324, 758, 250, 653, 32, 406, 130, 412, 231, 379, 450, 619, 653, 563, 19, 498, 549, 754, 80, 662, 601, 824, 807, 889, 809, 598, 419, 23, 19, 573, 950, 355, 596, 562, 294, 52, 608, 834, 703, 946, 242, 397, 161, 110, 862, 679, 150, 16, 11, 940, 806, 419, 691, 483, 963, 663, 157, 718, 132, 807, 983, 118, 426, 900, 605, 668, 640, 771, 592, 775, 121, 819, 800, 822, 28, 181, 97, 27, 41, 837, 32, 557, 710, 529, 981, 464, 556, 333, 741, 349, 361, 763, 439, 635, 646, 446, 588, 686, 901, 496, 251, 766, 386, 433, 721, 121, 43, 483, 460, 595, 994, 539, 178, 952, 849, 765, 802, 19, 877, 787, 524, 377, 912, 432, 615, 333, 881, 327, 355, 726, 803, 641, 378, 305, 699, 868, 690, 777, 396, 760, 525, 694, 550, 454, 924, 397, 207, 802, 250, 557, 456, 752, 541, 775, 452, 468, 503, 664, 701, 145, 685, 790, 953, 209, 201, 175, 208, 34, 212, 826, 21, 203, 297, 120, 318, 874, 373, 183, 835, 858}
{46, 631, 929, 492, 652, 446, 280, 777, 835, 157, 656, 329, 439, 733, 652, 724, 567, 125, 342, 905, 276, 5, 164, 74, 123, 890, 315, 163, 140, 916, 955, 21, 664, 290, 45, 424, 49, 363, 809, 14, 474, 517, 982, 271, 223, 835, 975, 874, 679, 154, 115, 610, 1, 814, 17, 65, 975, 58, 368, 501, 693, 274, 905, 852, 852, 515, 458, 552, 86, 349, 106, 106, 528, 235, 123, 734, 535, 246, 194, 269, 502, 645, 928, 397, 131, 193, 833, 138, 67, 856, 790, 469, 709, 207, 744, 699, 217, 865, 825, 306, 327, 570, 141, 81, 435, 748, 517, 777, 140, 845, 280, 502, 713, 953, 368, 858, 383, 158, 416, 294, 868, 400, 282, 162, 631, 845, 247, 614, 565, 546, 451, 611, 577, 147, 246, 958, 392, 551, 140, 795, 754, 215, 562, 382, 613, 930, 14, 363, 969, 979, 661, 488, 263, 482, 740, 835, 429, 313, 345, 474, 974, 207, 441, 912, 697, 196, 439, 232, 108, 315, 865, 693, 955, 693, 424, 640, 814, 835, 397, 368, 274, 346, 364, 171, 144, 314, 711, 512, 108, 436, 469, 446, 424, 99, 154, 238, 274, 60, 895, 993, 744, 912, 379, 652, 993, 210, 364, 58, 207, 237, 501, 346, 321, 136, 204, 618, 925, 684, 309, 754, 976, 835, 502, 207, 511, 431, 227, 327, 635, 619, 740, 469, 255, 810, 186, 562, 713, 207, 140, 915, 255, 925, 835, 501, 319, 130, 270, 403, 836, 18, 733, 43, 935, 740, 210, 431, 247, 25, 884, 704, 579, 5, 503, 555, 740, 977, 446, 757, 46, 833, 740, 693, 370, 328, 368, 545, 364, 967, 332, 421, 32, 80, 848, 513, 824, 705, 233, 321, 928, 171, 701, 327, 991, 280, 316, 175, 463, 918, 502, 446, 446, 464, 435, 752, 823, 974, 976, 401, 917, 512, 207, 487, 210, 105, 530, 806, 88, 737, 716, 424, 931, 747, 321, 329, 836, 595, 687, 13, 458, 685, 288, 727, 334, 848, 240, 937, 445, 269, 25, 984, 502, 614, 970, 492, 725, 965, 620, 446, 313, 452, 44, 962, 780, 186, 806, 141, 401, 831, 355, 355, 463, 608, 976, 456, 779, 890, 174, 271, 178, 594, 795, 508, 835, 495, 989, 865, 214, 276, 498, 718, 850, 859, 362, 797, 273, 806, 780, 567, 231, 866, 620, 38, 117, 489, 108, 530, 863, 657, 753, 872, 641, 813, 84, 342, 887, 184, 836, 644, 223, 952, 978, 342, 561, 708, 932, 270, 856, 859, 876, 207, 237, 754, 575, 423, 709, 297, 935, 192, 709, 793, 147, 731, 328, 683, 931, 931, 842, 781, 424, 439}
Returns: "Possible"
4)
231
{128, 162, 87, 142, 110, 195, 99, 186, 9, 70, 6, 146, 46, 37, 115, 181, 1, 139, 171, 176, 52, 45, 172, 37, 223, 106, 54, 38, 220, 103, 10, 47, 49, 144, 75, 157, 65, 96, 160, 93, 41, 68, 56, 115, 19, 212, 111, 132, 80, 111, 19, 31, 24, 230, 193, 120, 65, 28, 15, 17, 73, 140, 138, 137, 224, 219, 51, 36, 0, 216, 59, 101, 124, 27, 73, 105, 230, 158, 165, 83, 80, 120, 173, 57, 160, 107, 40, 85, 21, 95, 147, 208, 102, 61, 201, 32, 103, 228, 93, 205, 203, 197, 72, 170, 175, 14, 3, 151, 25, 103, 204, 164, 29, 171, 65, 43, 184, 137, 180, 127, 57, 152, 47, 229, 4, 76, 148, 226, 210, 114, 181, 117, 157, 200, 185, 161, 137, 27, 61, 124, 56, 98, 69, 22, 89, 136, 152, 66, 88, 212, 83, 107, 209, 185, 18, 221, 13, 91, 162, 13, 165, 176, 82, 222, 8, 226, 98, 152, 131, 191, 217, 91, 82, 143, 76, 35, 163, 167, 135, 202, 214, 64, 117, 32, 122, 202, 196, 77, 212, 6, 179, 43, 9, 214, 127, 210, 229, 70, 150, 129, 29, 171, 123, 147, 199, 145, 131, 52, 89, 222, 79, 22, 191, 187, 190, 188, 177, 119, 21, 95, 40, 174, 186, 198, 13, 57, 153, 221, 44, 114, 117}
{117, 34, 216, 128, 161, 89, 41, 28, 9, 160, 162, 132, 32, 99, 220, 97, 82, 213, 89, 15, 63, 210, 116, 137, 73, 159, 101, 40, 175, 201, 197, 167, 133, 173, 67, 142, 172, 191, 133, 22, 36, 45, 17, 107, 208, 50, 103, 116, 55, 208, 174, 107, 59, 137, 91, 206, 166, 109, 130, 121, 100, 156, 85, 50, 45, 162, 141, 27, 136, 85, 222, 109, 85, 203, 128, 8, 7, 70, 228, 198, 108, 108, 183, 13, 197, 10, 103, 159, 179, 113, 12, 194, 19, 189, 106, 3, 31, 116, 140, 206, 88, 229, 110, 144, 50, 226, 133, 174, 100, 211, 27, 29, 56, 152, 79, 33, 118, 96, 14, 121, 116, 118, 212, 168, 209, 65, 211, 142, 25, 42, 42, 52, 47, 54, 195, 133, 176, 142, 45, 31, 181, 52, 89, 72, 116, 31, 224, 74, 198, 179, 214, 191, 182, 80, 184, 20, 210, 71, 65, 199, 125, 215, 24, 212, 107, 161, 99, 212, 36, 142, 215, 35, 144, 74, 217, 113, 145, 14, 140, 224, 63, 47, 154, 126, 93, 71, 176, 108, 213, 29, 39, 185, 45, 21, 112, 196, 153, 167, 30, 60, 59, 133, 26, 177, 88, 194, 105, 141, 214, 39, 203, 184, 9, 193, 212, 79, 164, 18, 83, 5, 96, 117, 16, 143, 146, 191, 108, 18, 15, 20, 60, 191, 140, 212, 75, 223, 110, 216, 7, 185, 5, 150, 215, 74, 88, 229, 24, 80, 108, 216, 55, 116, 127, 20, 98, 141, 202, 122, 35, 115, 106, 150, 183, 79, 75, 164, 188, 94, 120, 70, 174, 217, 221, 139, 223, 227, 223, 34, 1, 8, 213, 55, 198, 30, 19, 42, 216, 43, 90, 221, 215, 72, 110, 5, 218, 172, 194, 14, 55, 99, 16, 115, 92, 189, 113, 94, 21, 202, 21, 208, 126, 117, 105, 114, 113, 173, 103, 179, 77, 135, 71, 127, 126, 209, 221, 140, 161, 72, 169, 133, 209, 198, 17, 79, 229, 35, 176, 3, 144, 161, 169, 70, 160, 107, 140, 6, 126, 26, 83, 207, 167, 56, 161, 206, 169, 124, 194, 108, 46, 150, 200, 120, 132, 160, 133, 73, 221, 72, 101, 199, 107, 218, 194, 145, 0, 17, 214, 225, 136, 58, 202, 187, 75, 70, 47, 129, 151, 142, 199, 98, 164, 81, 121, 115, 173, 211, 129, 23, 207, 115, 86, 141, 98, 152, 54, 23, 162, 209, 44, 31, 26, 86, 78, 104, 171, 223, 47, 207, 196, 25, 208, 99, 111, 110, 104, 97, 139, 166, 101, 217, 122, 159, 160, 6, 161, 128, 119, 73, 73, 40, 178, 87, 149, 91, 162, 122, 208, 9, 215, 45, 163, 75, 3, 37, 103, 188, 138, 147, 175, 151, 54, 160, 31, 74, 60, 199, 8, 199, 8, 162, 72, 173, 112, 203, 178, 201, 25, 115, 159, 112, 8, 161, 146, 193, 230, 84, 211, 125, 25, 84, 137, 84, 217, 168, 19, 173, 83, 20, 216, 45, 132, 140, 46, 192, 159, 24, 127, 73, 224, 42, 17, 142, 222, 103, 123, 211, 111, 82, 160, 208, 207, 41, 174, 46, 7, 105, 164, 92, 223, 58, 137, 125, 99, 219, 108, 155, 62, 184, 15, 56, 6, 52, 96, 34, 27, 201, 216, 187, 203, 84, 194, 53, 148, 207, 200, 129, 203, 46, 37, 134, 153, 1, 63, 177, 47, 31, 46, 204, 14, 45, 3, 131, 165, 79, 33, 13, 135, 202, 166, 215, 96, 33, 71, 102, 80, 176, 5, 115, 52, 132, 196, 200, 180, 47, 40, 110, 200, 184, 142, 62, 170, 34, 86, 142, 87, 223, 138, 200, 0, 203, 218, 98, 12, 221, 174, 156, 151, 140, 33, 143, 52, 155, 14, 33, 15, 50, 102, 33, 150, 203, 90, 218, 86, 157, 128, 118, 1, 42, 81, 84, 51, 125, 224, 229, 106, 94, 161, 62, 144, 153, 103, 104, 166, 93, 149, 123, 218, 105, 211, 13, 36, 27, 186, 229, 117, 34, 35, 75, 59, 196, 50, 49, 145, 35, 222, 63, 11, 212, 175, 64, 120, 111, 149, 162, 146, 228, 111, 110, 117, 138, 58, 46, 24, 100, 25, 25, 172, 69, 211, 140, 215, 62, 158, 200, 105, 73, 181, 170, 88, 227, 33, 97, 99, 180, 71, 64, 58, 221, 54, 220}
{113, 77, 76, 127, 223, 63, 178, 227, 97, 76, 193, 7, 209, 152, 155, 123, 69, 133, 43, 152, 78, 65, 76, 176, 128, 96, 69, 162, 226, 155, 11, 127, 155, 213, 13, 35, 98, 194, 155, 128, 141, 170, 123, 135, 104, 148, 123, 223, 94, 161, 171, 193, 2, 33, 188, 99, 119, 212, 227, 155, 196, 137, 185, 201, 53, 214, 65, 80, 118, 176, 54, 97, 99, 65, 97, 185, 212, 76, 92, 149, 43, 179, 104, 139, 89, 222, 24, 103, 180, 221, 151, 33, 5, 95, 59, 101, 85, 169, 29, 77, 163, 160, 163, 11, 150, 128, 188, 186, 69, 1, 103, 117, 111, 76, 128, 104, 195, 119, 134, 190, 215, 91, 152, 227, 53, 165, 89, 209, 46, 113, 131, 186, 18, 227, 188, 100, 100, 81, 165, 28, 87, 51, 37, 28, 76, 121, 75, 39, 169, 128, 185, 15, 176, 216, 77, 0, 79, 99, 209, 145, 219, 69, 64, 195, 134, 169, 165, 163, 229, 169, 155, 76, 19, 101, 190, 204, 123, 136, 123, 105, 128, 213, 169, 99, 24, 230, 53, 39, 188, 223, 128, 64, 65, 64, 185, 76, 180, 65, 230, 157, 84, 65, 76, 65, 195, 128, 81, 14, 170, 71, 135, 62, 149, 24, 196, 131, 51, 113, 208, 149, 72, 97, 227, 183, 38, 63, 217, 212, 65, 121, 53, 202, 170, 180, 94, 170, 53, 214, 193, 195, 223, 94, 163, 90, 95, 213, 123, 111, 46, 94, 204, 54, 123, 204, 92, 198, 53, 208, 135, 148, 183, 176, 171, 178, 22, 33, 24, 110, 70, 132, 33, 133, 186, 127, 195, 165, 64, 111, 209, 102, 65, 139, 195, 38, 155, 17, 76, 193, 82, 204, 227, 84, 24, 91, 34, 38, 3, 128, 178, 149, 11, 55, 194, 140, 45, 127, 206, 168, 47, 49, 170, 155, 204, 24, 65, 205, 104, 128, 185, 82, 24, 123, 170, 53, 165, 72, 214, 104, 99, 123, 155, 132, 121, 2, 165, 222, 134, 152, 1, 101, 24, 36, 69, 19, 177, 221, 212, 128, 118, 134, 116, 84, 223, 77, 179, 67, 91, 127, 72, 65, 149, 204, 215, 19, 128, 195, 123, 111, 128, 223, 76, 128, 84, 97, 215, 160, 195, 119, 126, 15, 184, 38, 99, 133, 212, 193, 4, 100, 227, 3, 163, 198, 153, 210, 5, 136, 221, 96, 102, 60, 204, 81, 186, 128, 209, 213, 193, 123, 64, 116, 126, 220, 103, 24, 98, 127, 173, 142, 76, 94, 163, 65, 7, 170, 214, 123, 133, 209, 28, 84, 174, 25, 103, 97, 153, 97, 15, 34, 81, 187, 201, 96, 65, 123, 29, 118, 227, 193, 100, 193, 165, 77, 205, 190, 76, 123, 168, 94, 97, 153, 170, 216, 204, 69, 125, 195, 48, 193, 53, 148, 149, 121, 45, 64, 222, 99, 63, 11, 9, 157, 186, 180, 5, 64, 55, 149, 114, 179, 61, 100, 96, 97, 35, 107, 223, 121, 186, 15, 170, 193, 101, 147, 99, 31, 73, 53, 97, 63, 201, 197, 82, 3, 123, 54, 76, 89, 169, 53, 111, 215, 34, 14, 173, 77, 214, 23, 17, 198, 24, 78, 109, 103, 188, 222, 28, 64, 153, 53, 64, 110, 129, 205, 107, 69, 118, 149, 196, 48, 128, 100, 153, 196, 65, 107, 217, 97, 94, 65, 198, 186, 101, 216, 53, 215, 209, 90, 55, 163, 100, 97, 227, 94, 123, 182, 195, 130, 153, 94, 75, 5, 117, 45, 165, 61, 79, 170, 97, 102, 99, 24, 76, 111, 127, 64, 76, 45, 130, 82, 5, 214, 53, 79, 219, 81, 71, 53, 97, 167, 100, 110, 7, 214, 121, 101, 97, 142, 43, 81, 100, 41, 157, 53, 163, 91, 185, 7, 121, 205, 2, 177, 135, 49, 131, 160, 28, 76, 133, 72, 11, 221, 147, 62, 57, 133, 140, 99, 170, 161, 179, 69, 213, 116, 229, 33, 64, 196, 155, 17, 138, 77, 216, 151, 163, 7, 213, 139, 214, 229, 35, 76, 104, 107, 173, 221, 123, 62, 201, 169, 60, 165, 230, 165, 123, 135, 110, 0, 209, 209, 193, 75, 115, 61, 64, 163, 167, 230, 72, 165, 74, 205, 180, 82, 91, 60, 71, 71, 147, 69, 181, 127, 158, 53, 91, 196, 100, 97, 179, 212, 97, 34}
Returns: "Possible"
202)
4
{1, 1, 1, 3}
{1}
{3}
Returns: "Impossible"

In any ordering, the first condition must be violated for atleast one of the first 3 students.

203)
6
{5, 5, 5, 1, 5, 4}
{0, 2, 4}
{1, 3, 5}
Returns: "Possible"

There are three valid orders of these students in the line: 230451, 234051, and 234501.

Submissions are judged against all 215 archived test cases, of which 7 are shown here. Case numbers match the judge’s.

Coding Area

Language: C++17 · define a public class RankingStudents with a public method string rankingPossible(int n, vector<int> f, vector<int> a, vector<int> b) · 215 test cases · 2 s / 256 MB per case

Submitting as anonymous