Problem Statement
The locations of all the existing plazas are given in a
Definition
- Class:
- Turnpike
- Method:
- unserviced
- Parameters:
- int, int, int[]
- Returns:
- int
- Method signature:
- int unserviced(int pikeLength, int n, int[] plazas)
- (be sure your method is public)
Constraints
- pikeLength will be between 100 and 1000, inclusive.
- n will be between 1 and 100, inclusive.
- plazas will contain between 0 and 50 elements, inclusive.
- The elements in plazas will be distinct values between 1 and pikeLength-1, inclusive.
- n plus the number of elements in plazas will be less than pikeLength.
Examples
1000
1
{300,701,800}
Returns: 300
The new plaza should be placed in the segment between 300 and 701. But the best we can do is to make the longest unserviced segment be of length 300, since the segment from 0 to 300 will still be unserviced.
1000
1
{200,701,800}
Returns: 251
We should place the new plaza in the segment between 200 and 701. We can reduce the longest unserviced segment to 251 by placing it either at 450 or at 451.
800
7
{622,411,201,555,755,82}
Returns: 70
The seven new plazas can be distributed along the turnpike so that the longest unserviced segments are from 201 to a new plaza at 271, from 271 to 341 (also a new plaza), and from 341 to the existing plaza at 411.
700
2
{200,400,600}
Returns: 200
700
3
{200,400,600}
Returns: 100
//int k=699, n=4; int[] p = {200,400,600}; //698 //int k=699, n=4; int[] p = {200,400,600,698}; //697 //int k=699, n=4; int[] p = {200,401,600,698}; //501 //int k=720, n=5; int[] p = {200,401,600,708}; //700 //int k=720, n=5; int[] p = {200,401,600}; //700 //int k=100, n=49; int[] p = {2,4,6,8,10,13,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,99};
601
3
{}
Returns: 151
666
5
{}
Returns: 111
147
96
{107, 113, 67, 104, 111, 24, 8, 89, 102, 17, 21, 48, 128, 63, 12, 80, 15, 52, 7, 4, 108, 120, 82, 2, 22, 137, 37, 109, 110, 18, 30, 115, 119, 78, 103, 126, 55, 23, 84, 85, 5, 13, 95, 56, 146, 65, 134, 72, 3, 112}
Returns: 1
134
93
{13, 11, 35, 119, 10, 113, 41, 112, 15, 14, 65, 97, 44, 106, 88, 69, 16, 116, 109, 89, 98, 120, 70, 54, 111, 129, 105, 12, 108, 24, 62, 86, 32, 126, 56, 81, 103, 91, 1, 50}
Returns: 1
128
33
{30, 124, 80, 34, 71, 6, 82, 114, 112, 8, 31, 60, 79, 24, 51, 97, 103, 117, 57, 13, 90, 45, 36, 3, 109, 122, 42, 89, 43}
Returns: 3
731
46
{536, 49, 558, 506}
Returns: 15
385
89
{213, 235, 373, 252, 109, 364, 288, 358, 87, 246, 69, 161, 351}
Returns: 4
450
67
{134, 328, 367, 103, 216, 104, 12, 394, 211, 197, 285, 87, 151, 277, 269, 178, 100, 276, 166, 370, 441, 243, 54, 43, 14, 66, 358, 60, 37, 272, 395, 385, 88, 415, 106, 313, 375}
Returns: 6
916
9
{205, 619, 643, 780, 505, 297, 538, 227, 817, 325, 88, 833, 402, 21, 191, 46, 314, 724, 454, 591, 687, 111, 357, 44, 195, 494, 504, 98, 776, 681, 701, 834}
Returns: 40
440
69
{365, 202, 244, 416, 99, 417, 438, 1, 237, 94, 73, 209, 431, 2, 107, 149, 349, 395, 30, 143, 62, 160, 317, 21, 169, 415, 140, 367, 67, 247, 411, 396, 206, 268, 40, 47, 300, 84, 83, 427, 91, 138, 361, 170, 26}
Returns: 5
668
32
{60, 279, 119, 499, 407, 118, 138, 262, 384, 277, 425, 607, 610, 367, 470, 321, 374, 380, 255, 547, 343, 84, 158, 300, 544, 382, 312, 538, 438, 551, 549, 436, 518, 381, 612, 410, 627, 266, 289, 299}
Returns: 14
420
26
{357, 28, 347, 309, 138, 376, 239, 159, 300, 64, 205, 136, 2, 227, 93, 221, 112, 37, 18, 415, 220, 384, 120, 115, 168, 1, 134}
Returns: 11
606
56
{501, 157, 407, 186, 399, 140, 145, 494, 422, 71, 391, 536, 297, 300}
Returns: 10
628
68
{191, 251, 536, 277, 290, 13, 548, 503, 331, 154, 344, 369, 545, 625, 136, 279, 236, 248, 353, 176, 307, 53, 384, 213, 223, 441, 49, 263, 401}
Returns: 8
123
82
{23, 19, 86, 39, 33, 17, 47, 70, 43, 14, 111, 9, 7, 66, 38}
Returns: 2
503
63
{433, 152, 53, 211, 79, 261, 406, 124, 196, 495, 326, 347, 323, 18, 42, 330, 453, 381, 248, 397, 414, 151, 349, 129, 403, 370}
Returns: 7
433
63
{366, 98, 258, 136, 185, 227, 362, 352, 237, 424, 224, 347, 327, 416, 401, 285, 279, 80, 20, 278, 296, 24, 332, 144, 10, 384, 333, 65, 305, 420, 124, 221, 182, 169, 127, 428, 75, 187, 84, 19, 76, 388, 174, 242, 241, 11}
Returns: 5
778
38
{389, 414, 186, 83}
Returns: 20
386
47
{224, 285, 315, 107, 234, 287, 243, 204, 73, 291, 32, 66, 19, 62, 140, 10, 63, 68, 322, 211, 72, 83, 300, 236, 292, 194, 161, 40, 104, 215, 39, 355, 295, 340, 130, 316, 346, 110}
Returns: 6
452
19
{293, 391, 167, 93, 95, 313, 282, 8, 65, 17, 323, 163, 173}
Returns: 17
695
28
{3, 307, 199, 392, 111, 418, 371, 596, 374, 308, 253, 177, 630, 294, 110, 650, 208, 448, 449, 672, 36, 166, 366, 189, 173, 547, 321, 60, 483, 601, 427, 654, 586, 568, 655, 390, 220, 605, 521, 267, 628, 254, 406}
Returns: 14
576
55
{180, 272, 302, 82, 261, 541, 373, 265, 143, 92, 144, 16, 505, 504, 551, 26, 123}
Returns: 9
230
74
{136, 40, 72, 55, 153, 108, 71, 83, 90, 140, 141, 103, 37, 176, 46, 63, 31, 116, 161, 82, 36, 78, 174, 129, 109, 151, 147, 92, 204, 180, 41, 173, 114, 127, 22, 91, 89, 84, 171, 156}
Returns: 3
502
40
{240, 284, 168, 174, 51, 371, 420, 124, 247, 318, 409, 91, 374, 163, 292, 459, 131}
Returns: 11
433
17
{7, 173, 190, 94}
Returns: 22
583
95
{}
Returns: 7
524
38
{463, 452, 179, 200, 84, 192, 317, 138, 407, 225, 75, 24, 203, 446, 91, 404, 361, 380, 144, 36, 376, 245, 386, 430}
Returns: 11
347
41
{320, 208, 271, 306, 137, 20, 148, 170, 259, 329, 283, 282, 183, 122, 57, 143, 214, 70, 6, 142, 255, 52, 281, 190, 166, 107, 85, 14, 159, 231, 132, 261, 252, 302, 173, 215}
Returns: 6
674
10
{406, 174, 267, 273, 93, 183, 364, 178, 547, 5, 519}
Returns: 43
1000
100
{701, 878, 844, 88, 659, 67, 794, 821, 627, 135, 390, 72, 733, 56, 749, 773, 856, 873, 570, 980, 440, 365, 577, 156, 447, 160, 963, 863, 767, 815, 506, 377, 695, 580, 857, 881, 346, 382, 367, 279, 40, 507, 652, 635, 232, 341, 285, 111, 28, 293}
Returns: 8
1000
100
{280, 306, 830, 87, 582, 100, 163, 954, 882, 828, 778, 9, 345, 756, 526, 576, 516, 706, 630, 535, 567, 490, 224, 396, 28, 761, 964, 316, 989, 789, 271, 482, 313, 825, 740, 240, 542, 926, 236, 398, 38, 967, 551, 500, 950, 903, 568, 109, 940, 376}
Returns: 8
1000
100
{575, 897, 427, 182, 476, 995, 212, 932, 758, 801, 663, 798, 647, 69, 694, 639, 169, 516, 773, 802, 699, 954, 745, 176, 463, 375, 188, 47, 714, 905, 15, 299, 436, 224, 439, 623, 385, 599, 881, 26, 49, 22, 70, 754, 657, 338, 328, 137, 109, 902}
Returns: 8
1000
100
{219, 863, 512, 935, 803, 175, 22, 801, 629, 832, 956, 913, 196, 627, 461, 306, 911, 708, 362, 143, 332, 334, 818, 440, 684, 351, 549, 918, 134, 202, 404, 30, 838, 9, 892, 831, 21, 210, 788, 693, 260, 639, 945, 110, 743, 896, 697, 843, 379, 738}
Returns: 8
1000
100
{431, 112, 614, 934, 682, 726, 256, 429, 227, 693, 697, 464, 469, 114, 999, 229, 495, 55, 509, 845, 711, 62, 85, 990, 873, 539, 411, 947, 353, 372, 484, 460, 265, 334, 986, 201, 264, 738, 390, 93, 401, 280, 952, 482, 11, 755, 82, 20, 157, 371}
Returns: 9
1000
100
{81, 168, 366, 17, 663, 535, 863, 568, 995, 512, 118, 990, 817, 978, 745, 494, 365, 489, 437, 547, 748, 480, 957, 60, 316, 279, 804, 443, 222, 236, 41, 187, 970, 772, 102, 416, 779, 539, 227, 862, 689, 100, 711, 359, 654, 721, 250, 753, 325, 461}
Returns: 8
1000
100
{907, 344, 527, 962, 851, 468, 748, 994, 858, 442, 625, 431, 768, 802, 347, 911, 961, 372, 871, 972, 368, 322, 774, 23, 219, 577, 683, 450, 363, 84, 735, 892, 899, 833, 422, 346, 175, 173, 323, 487, 337, 398, 702, 542, 786, 738, 553, 531, 852, 145}
Returns: 8
1000
100
{979, 542, 261, 778, 839, 578, 571, 697, 286, 49, 248, 330, 630, 775, 791, 189, 962, 337, 140, 291, 849, 123, 196, 480, 524, 445, 325, 282, 651, 389, 34, 132, 195, 254, 951, 783, 395, 522, 23, 490, 481, 46, 990, 903, 978, 181, 948, 628, 925, 669}
Returns: 8
1000
100
{498, 943, 76, 887, 802, 849, 837, 13, 727, 751, 587, 648, 787, 460, 934, 748, 819, 226, 105, 600, 85, 716, 454, 844, 425, 384, 264, 840, 632, 69, 546, 609, 975, 525, 252, 923, 328, 852, 97, 269, 220, 697, 367, 371, 731, 578, 756, 710, 141, 408}
Returns: 8
1000
100
{9, 170, 921, 259, 146, 394, 274, 110, 345, 863, 121, 512, 158, 851, 509, 369, 181, 114, 191, 885, 305, 949, 85, 624, 927, 285, 617, 912, 395, 542, 168, 906, 620, 23, 289, 786, 681, 745, 571, 297, 677, 213, 60, 610, 313, 765, 800, 856, 958, 319}
Returns: 8
1000
41
{622, 411, 201, 555, 755, 82, 1, 32, 55, 999, 123, 112 }
Returns: 23
100
1
{ }
Returns: 50
100
2
{ }
Returns: 34
1000
100
{10, 30, 50, 70, 90, 110, 130, 150, 170, 190, 210, 230, 250, 270, 290, 310, 330, 350, 370, 390, 410, 430, 450, 470, 490, 510, 530, 550, 570, 590, 610, 630, 650, 670, 690, 710, 730, 750, 770, 790, 810, 830, 850, 870, 890, 910, 930, 950, 970, 990 }
Returns: 7
1000
2
{ }
Returns: 334
100
99
{ }
Returns: 1
100
47
{ }
Returns: 3
999
99
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512 }
Returns: 10
101
99
{ }
Returns: 2
1000
3
{ }
Returns: 250
1000
1
{ }
Returns: 500
800
1
{ }
Returns: 400
1000
100
{2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100 }
Returns: 9
1000
50
{20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460 }
Returns: 20
102
49
{47, 31, 30, 53, 4, 88, 69, 29, 5 }
Returns: 2
100
2
{20 }
Returns: 27
100
5
{ }
Returns: 17
1000
100
{ }
Returns: 10
149
41
{109, 142, 34, 13, 76, 39, 138, 112, 22, 20, 5 }
Returns: 4
1000
5
{ }
Returns: 167
298
2
{ }
Returns: 100
214
25
{64, 59, 56, 58, 174, 34, 162, 74, 130, 187, 3, 212, 25, 194, 170, 166, 38, 93, 86 }
Returns: 6
100
2
{48, 52 }
Returns: 24
1000
1
{200 }
Returns: 400
100
98
{1 }
Returns: 1
1000
30
{ }
Returns: 33
1000
50
{402, 294, 763, 516, 230, 48, 528, 944, 562, 857, 681, 859, 952, 319, 607, 713, 993, 566, 235, 288, 222, 90, 216, 9, 616, 87, 301, 19, 160, 638, 240, 986, 331, 78, 470, 237, 16, 467, 95, 327, 999, 905, 575, 997, 954, 930, 141, 637, 238, 369 }
Returns: 15
400
1
{5, 10 }
Returns: 195
988
32
{940, 457, 198, 771, 159, 961, 112, 418 }
Returns: 27
1000
17
{622, 411, 201, 555, 755, 82, 800, 850, 910, 830, 950, 500, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155 }
Returns: 42
1000
97
{ }
Returns: 11
100
4
{50 }
Returns: 17
951
19
{50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900 }
Returns: 26
1000
41
{ }
Returns: 24
800
2
{ }
Returns: 267
201
3
{100 }
Returns: 50
1000
100
{20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360, 380, 400, 420, 440, 460, 480, 500, 520, 540, 560, 580, 600, 620, 640, 660, 680, 700, 720, 740, 760, 780, 800, 820, 900, 950 }
Returns: 9
130
1
{ }
Returns: 65
128
2
{ }
Returns: 43
500
7
{ }
Returns: 63
100
98
{50 }
Returns: 1
100
2
{34, 35 }
Returns: 33
1000
100
{321, 444, 876 }
Returns: 10
1000
99
{1, 101, 123, 44, 666, 999, 333, 222, 555, 766 }
Returns: 10
1000
11
{ }
Returns: 84
100
3
{ }
Returns: 25
100
2
{51 }
Returns: 26
121
3
{60 }
Returns: 30