Problem Statement
Your friend Lucas gave you a sequence S of positive integers.
For a while, you two played a simple game with S: Lucas would pick a number, and you had to select some elements of S such that the sum of all numbers you selected is the number chosen by Lucas. For example, if S={2,1,2,7} and Lucas chose the number 11, you would answer that 2+2+7 = 11.
Lucas now wants to trick you by choosing a number X such that there will be no valid answer. For example, if S={2,1,2,7}, it is not possible to select elements of S that sum up to 6.
You are given the
Definition
- Class:
- NumbersChallenge
- Method:
- MinNumber
- Parameters:
- int[]
- Returns:
- int
- Method signature:
- int MinNumber(int[] S)
- (be sure your method is public)
Constraints
- S will contain between 1 and 20 elements, inclusive.
- Each element of S will be between 1 and 100,000, inclusive.
Examples
{5, 1, 2}
Returns: 4
These are all the positive integers that can be obtained: 1, 2, 3, 5, 6, 7, and 8. (We can obtain 3 as 1+2, 6 as 1+5, 7 as 2+5, and 8 as 1+2+5.) The smallest positive integer not present in the above list is 4.
{1, 3, 26, 14, 28, 15, 3, 3, 35, 1, 2, 212, 30, 126}
Returns: 500
{6, 3, 33, 158, 100, 331, 4, 66, 132, 512, 2, 1, 1, 12, 3, 1, 1257, 1, 6}
Returns: 2630
{2, 12, 137, 3, 1, 8, 60, 25, 184, 1, 23, 6, 276}
Returns: 739
{53, 29, 1, 82, 125, 7, 1, 3, 29, 2, 2, 5, 7, 44, 1, 160, 3, 50, 1, 7}
Returns: 613
{2048, 256, 16384, 2, 1024, 8, 16, 32, 1, 512, 128, 4, 64, 4096, 8192}
Returns: 32768
{1024, 8, 256, 4, 2048, 4096, 64, 2, 8192, 16, 1, 512, 128, 32}
Returns: 16384
{32, 64, 1, 128, 2, 4, 8, 16}
Returns: 256
{256, 1024, 16, 2, 4, 8, 64, 128, 1, 32, 4096, 2048, 512}
Returns: 8192
{64, 8192, 99932, 512, 65536, 1024, 2, 2048, 4, 4096, 16384, 8, 15919, 256, 32, 1, 32768, 128, 16}
Returns: 246923
{2, 1, 4}
Returns: 8
We can obtain each of the sums from 1 to 7, inclusive. The smallest impossible sum is 8.
{4, 1, 2}
Returns: 8
{2, 1, 2, 7}
Returns: 6
The example given in the problem statement.
{46148, 4, 2, 58416, 1, 80011}
Returns: 8
{1, 14225, 1, 1, 1, 59962, 93481, 71261, 14875, 4}
Returns: 9
{19755, 72594, 48311, 98571, 1, 1, 1, 2, 1, 9408}
Returns: 7
{1, 4545, 99004, 17031, 60877, 9816, 3, 8, 14, 20698, 5, 1}
Returns: 33
{79150, 8, 8561, 51120, 29, 47009, 97589, 2, 58299, 1, 49825, 2, 4, 83988, 11752, 33509, 2, 57, 11}
Returns: 117
{1, 32667, 84703, 1, 58792}
Returns: 3
{9380, 1, 50305}
Returns: 2
{4, 44682, 79954, 53565, 98353, 1, 26006, 2, 2, 11421, 2}
Returns: 12
{84772, 50764, 47506, 3, 5, 5511, 23417, 2, 1}
Returns: 12
{2, 10, 9, 3, 4, 6}
Returns: 1
{1, 40560, 1, 928}
Returns: 3
{1, 1}
Returns: 3
{29, 55, 1, 85684, 85684, 85684, 3, 85684, 8, 33, 1, 85684, 1, 85684, 85684, 14, 85684, 1}
Returns: 147
{3, 2, 14, 9, 1, 1, 47, 2, 2, 32}
Returns: 114
{55064, 55064, 55064, 7, 3, 1, 1, 55064, 55064, 4, 55064, 55064, 3, 55064, 1, 3, 6, 55064, 12}
Returns: 42
{1, 92050, 1, 92050, 92050, 1, 6, 92050, 92050, 14, 1, 4, 92050, 92050, 33, 11, 92050, 92050, 3}
Returns: 76
{7, 44741, 44741, 1, 1, 44741, 44741, 44741, 12, 3, 12, 44741, 1, 44741, 3, 44741, 2, 8}
Returns: 51
{1}
Returns: 2
{2, 1}
Returns: 4
{1, 2, 1, 1}
Returns: 6
{1, 1, 1, 1, 1}
Returns: 6
{10, 5, 10, 1, 1, 4, 1, 20}
Returns: 53
{17183, 1, 50885, 20797, 10, 20, 43, 37249, 48449, 75677, 54065, 8, 5, 61635, 1, 1, 71149, 81500, 3, 2}
Returns: 95
{47222, 1, 62178, 3, 5, 5, 65487, 71317, 17, 2, 31048, 5, 8, 41824, 57562, 75483, 41, 2, 70955, 19211}
Returns: 90
{86151, 61450, 18234, 9, 90468, 17, 69809, 3, 88415, 23, 24, 60312, 35320, 1, 6, 7067, 1, 79865, 60, 5}
Returns: 150
{74271, 84843, 23652, 38973, 7, 3, 6, 1, 88876, 33265, 9, 20603, 33, 40913, 2, 4806, 49045, 10, 2, 29}
Returns: 103
{75105, 1, 2, 2, 87062, 40717, 24, 2, 1, 63328, 3, 1, 95196, 77310, 19266, 21865, 15, 41093, 2, 85003}
Returns: 54
{2, 20047, 98042, 5319, 1598, 6868, 1, 47301, 27692, 87, 2, 94767, 50758, 7, 16, 30, 53, 7, 56747, 3}
Returns: 209
{2, 39688, 1, 64279, 1, 26989, 14, 52436, 37830, 17915, 29382, 5, 9454, 3, 2, 3, 93588, 4, 2, 32461}
Returns: 38
{15347, 83708, 22160, 60267, 6, 5, 2, 11, 83508, 31485, 1, 67618, 1, 84047, 60461, 6, 41964, 3, 11, 24}
Returns: 71
{91671, 1, 58769, 63024, 14317, 95285, 1, 16, 1, 1, 4, 89237, 5, 42303, 1, 69789, 60660, 1, 8943, 6}
Returns: 38
{2, 173, 3, 2, 194, 92, 23, 41, 475, 1, 11, 2, 1, 71}
Returns: 1092
{1, 70560, 1, 7, 70560, 55747, 12370, 28273, 8, 18499, 1, 2, 2, 7, 79906, 74838, 44507, 28585, 1, 12}
Returns: 43
{16, 14, 14, 26732, 1, 2989, 190, 96410, 149, 34, 2, 362, 705, 63, 5239, 4, 488, 407, 6, 37}
Returns: 2493
{54, 2, 24, 1, 11, 1, 42, 44831, 3, 35, 115, 18564, 125, 1, 128, 509, 13165, 74, 8, 18962}
Returns: 1134
{2, 10, 1, 354, 40, 1, 1, 5, 16, 96280, 4207, 59995, 71, 121, 3, 130, 25, 2, 52827, 2}
Returns: 785
{42318, 3, 14, 1, 21, 71075, 88014, 2, 86718, 4, 14, 106, 1, 164, 1, 43, 51, 18, 55, 5}
Returns: 504
{94512, 2, 87654, 81316, 6, 5, 6, 37151, 6, 139, 1, 36, 307, 1, 377, 101, 8, 37, 58, 1}
Returns: 1092
{7, 34, 75798, 17, 61124, 62989, 161, 114, 450, 1, 83086, 1, 11, 22, 2, 41, 70, 11, 2, 3}
Returns: 948
{10, 86, 1, 1, 42, 57389, 85, 2, 1, 11754, 5, 363, 1, 5, 192, 13, 1, 13745, 40861, 7}
Returns: 816
{28, 4, 48463, 23, 32, 183, 202, 17, 27495, 9, 1, 46, 11935, 94762, 498, 1, 74, 1, 1, 3}
Returns: 1124
{78225, 29, 2, 145, 15, 141, 2, 12, 36, 82, 85390, 1, 90765, 3, 7, 88847, 1, 1, 4, 451}
Returns: 933
{2, 3, 1}
Returns: 7
{217, 76694, 1, 13546, 319, 20, 1, 1, 93155, 3, 22, 13, 25, 28, 180, 7, 78, 27008, 714, 23}
Returns: 1653
{16, 69, 2, 91, 452, 66170, 240, 23, 8, 909, 18, 1462, 8, 32, 1, 3257, 60, 4, 5006, 38613}
Returns: 11659
{738, 27, 97092, 79963, 35, 4, 70, 36, 2260, 829, 2, 242, 3, 120, 38, 10, 1, 6, 157, 68}
Returns: 4647
{1, 17, 6, 276, 99, 1, 87009, 1, 77, 2, 1497, 24, 1094, 11, 634, 74132, 2, 211, 64, 97}
Returns: 4115
{7, 185, 1, 6, 16, 64, 1, 3, 15, 85464, 26, 843, 143, 257, 71886, 33, 187, 1, 208, 1}
Returns: 1998
{11, 6, 688, 39130, 85, 243, 15, 1, 521, 1, 1, 1, 1, 39677, 30, 41, 28, 177, 21, 41}
Returns: 1913
{2, 91670, 7, 2, 2, 34, 301, 1, 2, 48, 451, 12, 62039, 16, 38, 14, 45, 227, 2, 33}
Returns: 1238
{134, 31, 10, 45, 3, 11, 7, 346, 68, 1, 89746, 513, 12, 1, 60, 1, 5, 40, 69615, 27}
Returns: 1316
{55, 2, 78, 20, 382, 121, 142, 19, 2, 10, 1, 9, 64055, 1, 288, 2, 4, 90207, 54, 7}
Returns: 1198
{115, 3, 1396, 1, 369, 15, 3, 1, 97455, 6, 5290, 1, 30, 91, 12, 955, 191, 43, 67, 90}
Returns: 3390
{28, 9, 5, 67, 4, 2, 1, 21, 34, 95, 52}
Returns: 319
{27, 101, 36, 485, 1, 4, 1, 14, 1, 29, 2, 86154, 325, 17, 127, 3, 208, 481, 76223, 2}
Returns: 1865
{12, 9, 73, 64, 38525, 3386, 5, 459, 1662, 1, 29, 843, 1, 77582, 306, 204, 2, 188, 18, 6}
Returns: 7269
{192, 3, 720, 2, 1, 67188, 3, 577, 85, 26, 1, 9, 60, 2153, 128, 48, 18, 288, 63746, 2146}
Returns: 6461
{595, 13, 74, 1832, 5041, 4355, 15611, 953, 187, 4, 3, 69609, 31, 9, 1, 9, 1, 202, 72, 585}
Returns: 13968
{1887, 1, 11, 93621, 1, 331, 886, 88239, 5, 49, 130, 5, 273, 2, 9, 31, 1398, 34, 112, 497}
Returns: 5663
{21, 259, 1, 35, 225, 812, 1, 1, 58544, 361, 14, 82, 58, 1516, 5, 17494, 541, 6, 4, 10}
Returns: 3953
{3, 7, 1, 1, 142, 8795, 38, 25, 85, 57, 5, 98120, 21, 805, 1208, 358, 318, 537, 10, 3}
Returns: 3625
{115, 54, 2, 1210, 405, 8246, 5, 46, 1, 18, 9278, 12, 8, 1, 462, 4, 3, 1034, 173, 77}
Returns: 3631
{86023, 1039, 3, 66, 895, 73247, 29, 2, 439, 4, 1608, 366, 11, 126, 41, 84, 3003, 7, 1, 5}
Returns: 7730
{42, 95, 1, 6, 406, 84422, 2745, 10, 385, 1441, 10, 913, 3, 609, 15, 142, 1, 39, 23206, 63}
Returns: 6927
{1, 1, 94, 7, 172, 354, 1, 8, 34, 561, 1606, 2407, 1, 12, 4, 9, 204, 19, 449, 3}
Returns: 5948
{16, 687, 3, 1, 5, 65822, 3486, 7, 1, 2, 728, 1092, 1, 85, 38, 84, 256, 257, 11, 2}
Returns: 3277
{990, 31, 15860, 1984, 1, 7931, 6, 1, 1, 248, 62, 126, 40882, 5, 498, 3963, 1, 1, 16, 90687}
Returns: 31726
{56138, 1, 6, 7, 1, 225, 1, 31, 12, 14372, 34357, 7188, 56, 451, 109, 1, 3592, 1796, 1, 898}
Returns: 28749
{62031, 9, 1, 82308, 401, 804, 99, 10, 50, 6420, 3, 1601, 3210, 1, 201, 1, 1, 26, 1, 12836}
Returns: 25676
{5387, 12, 2, 674, 39, 3, 2693, 1, 58558, 169, 85, 98182, 1, 21547, 21, 1, 10775, 5, 1347, 340}
Returns: 43103
{3245, 52475, 811, 201, 410, 54813, 1623, 24, 3, 1, 12984, 51, 5, 1, 1, 25971, 102, 5, 6490, 15}
Returns: 51944
{3763, 7527, 31, 12, 474, 1, 234, 7, 940, 3, 116, 4, 3, 1881, 15056, 54186, 1, 31835, 1, 60}
Returns: 30115
{149, 1, 17, 1, 2344, 4, 1172, 1, 37249, 2, 5, 1, 73, 1, 8, 99615, 586, 4691, 294, 35}
Returns: 9386
{1, 11, 700, 352, 3, 4, 70288, 3, 24, 2796, 174, 71018, 85, 1, 1, 5600, 11191, 1, 1400, 43}
Returns: 22391
{66766, 5832, 363, 46, 1, 731, 1, 185, 90, 1, 1, 4, 1, 62245, 13, 2917, 1456, 6, 11661, 20}
Returns: 23330
{14, 4, 9, 1, 1, 9, 1, 3}
Returns: 43
{883, 66392, 3531, 28257, 1, 14131, 57, 1, 25, 88474, 4, 1, 110, 6, 1769, 220, 442, 7064, 7, 13}
Returns: 56523
{883, 66392, 3531, 28257, 1, 14131, 57, 1, 25, 88474, 4, 1, 110, 6, 1769, 220, 442, 7064, 7, 13 }
Returns: 56523
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 }
Returns: 131072
{10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000 }
Returns: 1
{1, 2 }
Returns: 4
{1, 10, 100, 1000, 10000, 100000, 100000, 100000, 99999, 99997, 99999, 99993, 99995, 99996, 99992, 39999, 99991, 99998, 100000, 999 }
Returns: 2
{5 }
Returns: 1
{2, 1, 4 }
Returns: 8
{5, 3, 2 }
Returns: 1
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }
Returns: 211
{2 }
Returns: 1
{7 }
Returns: 1
{5, 4, 2 }
Returns: 1
{94512, 2, 87654, 81316, 6, 5, 6, 37151, 6, 139, 1, 36, 307, 1, 377, 101, 8, 37, 58, 1 }
Returns: 1092
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 100000 }
Returns: 231072
{5, 2 }
Returns: 1
{2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 65536, 65537, 99999, 99988 }
Returns: 1
{2, 100, 4 }
Returns: 1
{1 }
Returns: 2
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 99941, 99967, 99934 }
Returns: 430914
{2, 3, 4 }
Returns: 1
{5, 1, 2 }
Returns: 4
{1, 2, 3, 7, 8, 9 }
Returns: 31
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 99999 }
Returns: 231071
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 65536, 65536, 65536 }
Returns: 327680
{5, 6, 7 }
Returns: 1
{1, 2, 4 }
Returns: 8