Problem Statement
Definition
- Class:
- KnapsackProblem
- Method:
- numberOfWays
- Parameters:
- int[], int
- Returns:
- int
- Method signature:
- int numberOfWays(int[] x, int C)
- (be sure your method is public)
Constraints
- x will contain between 1 and 30 elements, inclusive.
- Each element of x will between 1 and 10^9, inclusive.
- C will between 0 and 10^9, inclusive.
Examples
{1}
1
Returns: 2
We can either take the item or not take it.
{1}
2
Returns: 2
Same as the first example
{2, 2}
1
Returns: 1
We cannot take any of the items.
{1,1}
2
Returns: 4
We can take both items, just the first item, just the second item, or no items.
{1,1}
1
Returns: 3
This is the same as the previous example, but with a lower capacity bag. We cannot take both items in this case.
{1,2,3,4,5}
0
Returns: 1
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
30
Returns: 1073741824
We can take any subset of the items.
{900000000,87566543,53467171}
141033714
Returns: 4
{90000000,87566543,53467171}
141033714
Returns: 5
{1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000,1000000000}
1000000000
Returns: 31
{7625496,3922618,1904379,38844,8420625,335187}
8408378
Returns: 20
{422954}
0
Returns: 1
{9788745,6918189,9221700,3293904,9085734,1565064,6706826,1591525,3346731,8355118}
36439667
Returns: 734
{1331836,1151709,4972262,3503428,2991272,3481212,2190423,1675239,9265651}
9853977
Returns: 113
{5064955,2245587}
0
Returns: 1
{4666882,809956,7973367,46464,6102894,8363621,5711869,7389573}
22284734
Returns: 154
{8674336,5002050,9408677}
0
Returns: 1
{8278288,6155643}
6569936
Returns: 2
{5374273,1664037,1094067,4975971,3091051,9767230,7205154,6628057,9621041,3960184}
28860146
Returns: 602
{62279,8055275,8802756,42538,8280057,6802166,7801741}
25511826
Returns: 104
{938376,4671630,3129605,2725406,7012890,6345090,6697327}
29196153
Returns: 126
{4842195,426589,888967,436397,5139369,4184147,6703905,7742496,7931740,1628790,8578937,674595,5922245,2221933,4464746,76654,3578467,1171875,8899251,1618111,3237079}
32656122
Returns: 526295
{4516470,6785787,1854814,1710715,1123818,2771490,769799,6468979,217341,3124877,9479423,3972061,7468800,8843923,13001,6411986,4433481,1096364}
3074253
Returns: 62
{7358710,675634,1492398,5984910,7291316,7026090,4400311}
0
Returns: 1
{9672998,719634,8193091,1579073,3700990,3210056,5883493,365257,6392395,4453451,2123036,3763506,31981,8943854,6252375,3976178,4578822,6224232,1915917,5304867,9307900}
103244365
Returns: 2097152
{4914007,410717,7234835,8637156,3588154,8023405,6130426,9437615,3822954,9114911,8550209,3096386}
609599
Returns: 2
{4313272,6085198,92250,8883537,3637043,27433,8047428,4862469,6280024,646688,3347732,7076464,6127822,3166625,522659,1156289,1739331}
9874460
Returns: 1011
{3666858,1189438,3583432,2849008,8682050,5148756,5818833,7219988,2078338,3023293,7392230,8950162,9091467,1112742,9357996,4411434,5159589,2731523,8088745,9711008,5373111,5184522,9151050,8016828,3726417,319158,6965854,9463373}
42277317
Returns: 3668522
{6520133,7322734,7815670,2341941,5087890,4055323,8911977,6557460,5235259,3306230}
32203910
Returns: 659
{9329251,5587688,4306340}
23238280
Returns: 8
{622730392,622730392,207576797,207576797,622730392,164252683,207576798,458477709}
622730392
Returns: 20
{6531,859,251,868,1138,741,395,223,4521,8313}
11920
Returns: 513
{1393,24988,938}
27319
Returns: 8
{11787242,33461988,32560243,169824544,250685594}
498319611
Returns: 32
{222157482,774546346,996703828,996703828}
996703828
Returns: 6
{948914951,948914951}
948914951
Returns: 3
{9960,9959,9960,9960,9959,9959,9960}
69717
Returns: 128
{141225849,1642959,282451698,121364750,106028088,141225849,53415901}
282451698
Returns: 34
{24872858,24872857,24872857,24872858,24872858,53268597,71095691}
124364288
Returns: 65
{41265,17371,46604,17371,7532,17370,11207,17371,9479,22879}
69483
Returns: 206
{239298405,272808810}
512107215
Returns: 4
{741,3097,3158,1721,18351,20030,638}
23868
Returns: 65
{23435277,112993335,15972123,14851425,115715652,14974719,7552254,28745856,15176760,31541872,37664445,133631123,112993335,37664445,34785491,112993335,225986670,37664445,37664445,15590788,112993335,37664445,37664445}
225986670
Returns: 51712
{21256,31884,21256,1867,2234,2410,21257,19050,34813,31885,3395}
63769
Returns: 418
{136140122,163368146,272280245,816840733,136140123,816840733,136140122,816840733,163368146,136140122,163368147,136140122,816840733,163368147,136140122,272280244,272280244,163368147}
816840733
Returns: 1832
{44218,5342,28169,8843,8844,14739,14740,10707,8844,14739,8844,8843}
44218
Returns: 365
{701087856}
701087856
Returns: 2
{840393897,840393897}
840393897
Returns: 3
{12586948,33183379,41479224,121217644,41479224,55305631,33183379,33183379,33183379,142180,25864839,55305632,50983652,33183379,165916895,27779660,43188816,114933243,122728079,140052056,137995055,41479224,41479223,32112303,55305632}
165916895
Returns: 8625
{143868347,143868347,277923521,143868347,441418214,143868347,143868347}
719341735
Returns: 65
{134456194,134456194,76832111,168930706,537824776,76832110,537824776,76832111,179274925,76832111,76832111,76832111,537824776,76832111,86944534,179274925,76832110,76832111,179274926,76832111,134456194,76832111,324114039,76832111,90564894,278329176,126766203,76832111,76832111,134456194}
537824776
Returns: 76040
{19306462,96244645,1720054,240611612,5457977,58855828,210329861,96244645,96244645,16395580,24109072,160407742,481223224,71894840,187575082,381002326,409328384,160407741,6346819,481223224,240611612,96244645,160407741,24057792,27289595,434888340,240611612,96244644,240611612,46334884}
481223224
Returns: 176045
{175512888,97826276,234017185,234017184,25978539,100293079,351025777,68158669,62912973,702051553,234017185,453963181,702051553,234017184,185175399,702051553,351025776,100293079,175512889,234017184,100293079,138430191,175512888,100293079,100293079,100293079,100293079,371657878,234017184,175512888}
702051553
Returns: 37586
{59318606,145234182,417349674,93066160,140738456,3639252,134621247,208674837,208674837,59621382,103003660,59621382,59621382,31210397,318261316,27855096,3082677,59621382,417349674,59621382,80465127,17665252,240905095,5192727,69397670,179841372,59621382,76271,15824133,59621382}
417349674
Returns: 685742
{7439,27245,375,7439,44631,82,7438,7438,1114,6690,702,42054,7439,14877,2183,7438,69,7439,14877,4146,7438,1966,14877,1418,7438,7438,7439,28463,7439,17386}
44631
Returns: 1623779
{142857143,142857143,142857143,166666666,142857143,166666667,142857143,142857143,142857142,142857143,142857143,1000000000,142857143,166666667,142857143,250000000,166666667,203542167,250000000,142857143,572417328,190553944,142857143,809446056,250000000,250000000,142857142,224040505,166666667,166666666}
1000000000
Returns: 220738
{250000000,669435418,228158174,250000000,250000000,333333333,1000000000,250000000,84333935,250000000,250000000,333333334,1000000000,250000000,250000000,250000000,250000000,250000000,250000000,250000000,1000000000,250000000,250000000,333333333,500000000,500000000,250000000,1000000000,18072473,1000000000}
1000000000
Returns: 8763
{200000000,200000000,695238468,166666666,200000000,200000000,200000000,32426667,200000000,333333333,69674181,333333333,500000000,200000000,1000000000,200000000,210282746,65894709,166666667,166666667,4375456,333333334,166666667,500000000,893523696,200000000,166666666,28584077,200000000,166666667}
1000000000
Returns: 206848
{19713380,226541424,250000000,500000000,70650700,1000000000,546737799,54959589,86830443,355296857,60754368,84819089,137642524,105793240,522860510,1000000000,500000000,458291181,250000000,11257554,102853712,10101830,11964129,250000000,250000000,88517310,93248105,847215364,37996699,65954193}
1000000000
Returns: 1039467
{165862927,200000000,40552954,142857143,142857143,846936126,92934141,907065859,333333334,200000000,142857143,333333333,69642059,333333333,23556813,1000000000,514471921,142857143,500000000,200000000,200000000,1000000000,138998528,142857142,142857143,142857143,200000000,83421815,500000000,116556857}
1000000000
Returns: 199247
{24589771,7952079,13499807,24097078,22499985,9944436,20018525,16121028,8835522,15310452,7693603,15488770,18645032,21349120,12460708,19610243,15777480,9010810,7508933,19648968,17136515,10119572,3373334,24183395,18786241,4983918,26647786,12281105,26651017,21908449}
476133682
Returns: 1073741824
{20047846,2239877,15575012,15076920,10542177,19979898,4472091,2665012,6821937,25723085,9106012,6559859,16653538,10874475,11865475,17404905,6968330,17438887,25455158,8651080,22790751,12289011,25094925,8009991,9941692,5834489,20972341,2755970,28362677,25406192}
387216936
Returns: 1073739778
{12167080,826062,1651630,26939121,16266791,11754951,15566753,20249483,23043702,732352,10176313,9791467,23921648,25903749,15401570,4985003,4727075,15841205,19172236,6113105,15196945,10054977,19772841,26057428,9787745,245871,27110620,18605402,12494013,29371044}
433928182
Returns: 1073741824
{2366581,3966028,27858208,1384564,8718001,4285790,18200678,9138617,5749635,2193107,9771509,27757432,13530428,9114963,27557260,15020181,14442006,14203296,19742644,6771451,21769572,25311185,21058923,8435590,5996739,16395205,17653906,8823238,17708005,27085772}
412010514
Returns: 1073741824
{4379254,3006252,18782290,22946557,17675622,4028897,25959330,20510665,6509699,21653885,1946848,24951709,19968750,6076502,2407495,1937073,2407934,5274,25106284,5456834,12010846,9043317,9388504,17513669,20665805,7650865,12159836,23134005,25057658,16112685}
333364753
Returns: 1073433196
{13094006,17721438,7968216,19815736,6282286,18571994,25993308,21802636,22518369,29029366,7087116,11599146,19012922,11794683,4514689,8310358,23828724,17325531,12201760,13393388,12735441,21193492,20532102,12688853,17974518,17161572,14150147,12227534,2220363,12732226}
455481920
Returns: 1073741824
{22320547,3692222,18992711,23707208,22973783,18982301,7949607,14275368,27588558,24969538,6893374,17156538,24265564,1564163,18469606,14013271,21729325,18139508,22618943,22485180,17052612,25304239,25415311,27633073,19007335,11176412,11074944,5422008,21618241,28170877}
508498494
Returns: 1073741054
{21983464,15387905,23028584,4515734,12467171,5590471,16129464,873885,5462818,2329858,17160199,25056421,22697289,10949586,22938040,25492270,28569632,13879239,29495224,3271326,24185746,16689817,5915427,8420429,1898974,8001237,24180544,17678697,17206724,7705229}
390164485
Returns: 1073697209
{3578483,29221842,4555108,8548325,17223491,19592072,2221423,1861983,13828393,29926901,1873386,28269091,6739538,27116041,9180451,14669451,3312705,16132727,19642860,1661308,25471607,3987340,7850969,2196295,16795586,10310603,29071065,3848652,21373048,29739152}
371512419
Returns: 1073696506
{1944607,10563110,14247048,15060422,11938056,13964909,10619642,11428400,8523444,24378465,8348026,28358588,13550350,24160404,25635659,22549876,15046922,22624943,9393574,354885,5366073,16276386,1809630,16498,9477190,11511492,22176817,26205194,10140789,23572570}
393861769
Returns: 1073740270
{27063924,23259330,4596207,7290296,13617534,3203914,14060263,7213214,15490159,22786062,16374643,19808243,10030218,5672835,20605265,6884444,7991117,23366666,8362642,7011583,19405835,29400620,17603827,15730160,10683886,16924472,23454416,2581020,10534572,21002530}
399193617
Returns: 1073739275
{13631494,14917622,24892054,5335952,21096293,16355276,18097210,24624706,11052347,17904992,18673452,3595691,29420537,7988157,235127,26809856,14728789,1099487,13767696,14328321,10220811,23305080,6996535,11638544,389129,12813661,13503777,22367233,28423734,19768646}
411876072
Returns: 1073736647
{4431027,10804458,22288376,12300227,28884241,7033115,18046454,8057106,6808209,17504679,28919502,7455131,2991163,626756,24522468,13134030,10837265,5254626,1881362,13854502,394275,25839993,11680190,29844870,7646393,7950092,11343939,7596352,18461629,17732739}
318720832
Returns: 1072895586
{18694172,13044796,3034215,2457861,9722543,21426466,8937249,6974041,21232325,23646249,1970559,26665757,23126733,8935028,6138766,13941638,9445485,14612165,8566559,324310,17464100,16719753,29000353,20404914,20996323,5058577,12120285,17932816,28523615,24211120}
368019756
Returns: 1073449283
{7236838,16813217,25723848,15833263,23139664,3999778,20580940,18692023,3641425,14118854,4913941,20985799,14365388,28291208,27422412,28090371,28640794,13862029,23451562,3937591,20902270,26064186,17256427,17257663,25375766,8740849,20641574,9222247,2216277,13045791}
460603948
Returns: 1073736522
{1535795,28678030,13375225,9589493,28369349,26424130,4117738,11025258,11403636,10254463,24793529,18655255,28053207,29621247,3811799,5013468,6747557,14376415,19929174,1048726,29720648,7567876,19275555,29445284,5006714,14356081,20620304,17627135,16586483,2937797}
378543334
Returns: 1072821010
{23697548,25853962,19527860,23161270,26263318,4785506,25733744,19398728,6967445,4263088,11123232,23815115,18248498,19514228,9737184,12016256,27621239,29515606,21704642,5867693,717552,5735727,3337571,108559,25963164,22983767,3890174,29979637,14615167,18650407}
454100698
Returns: 1073739233
{20554181,28896118,7878839,14722634,23873910,10399462,13527177,21386976,10936230,27588996,22477051,18513757,12899456,18805024,3855568,17396505,23281758,26892543,16629959,12485829,15019034,1152509,4110053,4208750,11958606,9524292,4778963,23588547,28183025,21889789}
453826994
Returns: 1073741477
{19907309,11769025,3454571,3919223,17122432,6630986,6765873,19904704,21821414,8745370,4456037,4896467,19957855,29954430,10368594,17535466,22736155,2422620,26600748,11497937,22830706,24409632,18264243,1337025,2715008,11000296,3781644,26739887,17890332,11219039}
410655028
Returns: 1073741824
{9541272,22115995,16000475,14877727,18191425,14878624,14134854,25513227,23087615,7540862,10171299,4934500,17547776,20582860,8542040,20217224,8718266,21145184,5328916,8929634,13884888,14497139,8273019,17079336,27726944,24776237,70676,9857137,2828736,28810489}
369269168
Returns: 1073472669
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912 }
1000000000
Returns: 1000000001
{262236772, 208042609, 800207362, 428428949, 47718728, 793958355, 543227091, 255063701, 245922717, 448084510, 841298076, 50803247, 489249763, 634882132, 437249775, 192858938, 769723075, 17244079, 451954759, 998335072, 962932682, 107998840, 117154510, 343955362, 434512596, 123907813, 495496906, 1000000000, 1000000000, 1000000000 }
1000000000
Returns: 5477
{90000000, 90000001, 90000002, 90000003, 90000004, 90000005, 90000006, 90000007, 90000008, 90000009, 90000010, 90000011, 90000012, 90000013, 90000014, 90000015, 90000016, 90000017, 90000018, 90000019, 90000020, 90000021, 90000022, 90000023, 90000024, 90000025, 90000026, 90000027, 90000028, 90000029 }
1000000000
Returns: 107636402
{1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000, 1000000000 }
1000000000
Returns: 31
{3883338, 5317955, 9314655, 189912, 2343229, 63774, 217710, 10847538, 1850040, 3070592, 77648, 3668243, 1196460, 352026, 12750045, 18867058, 12299276, 9719523, 4814208, 33462, 2916417, 21746899, 13384008, 856152, 14486550, 4982238, 4342180, 9282588, 7764540, 4552876 }
100000000
Returns: 667607940
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
15
Returns: 614429672
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1000000000 }
1000000000
Returns: 536870913
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000, 256000, 512000, 1000000, 2000000, 4000000, 8000000, 16000000, 32000000, 64000000, 128000000, 256000000, 512000000 }
1000000000
Returns: 1048551403
{1000000000, 1000000000, 1000000000 }
1000000000
Returns: 4