Problem Statement
A male rabbit and a female rabbit were born in July (the 7th month) of year 1, in a certain country. They were the only rabbits in the entire country, so they became a couple.
In March (the 3rd month) of every year, each couple who is strictly more than 1 year old will breed one male and one female rabbit. That is, couples born in year y will start breeding in the year y + 2.
Then, in April (the 4th month) of every year, all newly born rabbits will form couples among themselves. Each rabbit will be a member of exactly one couple, and each couple will contain one male and one female rabbit.
You are given a
How many couples are in this country in December (the 12th month) of year k? Return the answer modulo 1,000,000,009.
Definition
- Class:
- RabbitIncreasing
- Method:
- getNumber
- Parameters:
- int[], int
- Returns:
- int
- Method signature:
- int getNumber(int[] leaving, int k)
- (be sure your method is public)
Constraints
- leaving will contain between 1 and 50 elements, inclusive.
- k will be between 1 and 10,000,000, inclusive.
- Each element of leaving will be between 1 and k, inclusive.
- Elements of leaving will be sorted in strictly increasing order.
Examples
{ 3 }
3
Returns: 1
The first couple will breed a pair of rabbits in March of year 3. Since there are 2 couples in November, 1 old pair will leave.
{ 5, 9 }
10
Returns: 6
In November of year 5, 3 out of 5 couples will leave. In November of year 9, 5 out of 10 couples will leave.
{ 5, 10, 15 }
19
Returns: 212
{ 2 }
10000000
Returns: 0
{ 195, 211, 227, 230, 260, 297, 346, 350, 403, 411, 428, 485, 594, 606, 876 }
1000
Returns: 975206486
There are a lot of rabbits. Be sure to return the answer modulo 1,000,000,009.
{ 1 }
1
Returns: 0
{ 1 }
2
Returns: 0
{ 2 }
2
Returns: 0
{ 1, 2 }
2
Returns: 0
{ 1 }
3
Returns: 0
{ 2 }
3
Returns: 0
{ 1, 2 }
3
Returns: 0
{ 3 }
3
Returns: 1
{ 1, 3 }
3
Returns: 0
{ 2, 3 }
3
Returns: 0
{ 1, 2, 3 }
3
Returns: 0
{ 1 }
4
Returns: 0
{ 2 }
4
Returns: 0
{ 1, 2 }
4
Returns: 0
{ 3 }
4
Returns: 1
{ 1, 3 }
4
Returns: 0
{ 2, 3 }
4
Returns: 0
{ 1, 2, 3 }
4
Returns: 0
{ 4 }
4
Returns: 1
{ 1, 4 }
4
Returns: 0
{ 2, 4 }
4
Returns: 0
{ 1, 2, 4 }
4
Returns: 0
{ 3, 4 }
4
Returns: 0
{ 1, 3, 4 }
4
Returns: 0
{ 2, 3, 4 }
4
Returns: 0
{ 1, 2, 3, 4 }
4
Returns: 0
{ 3 }
5
Returns: 2
{ 4 }
5
Returns: 1
{ 5 }
5
Returns: 2
{ 3, 5 }
5
Returns: 1
{ 3 }
6
Returns: 3
{ 4 }
6
Returns: 2
{ 5 }
6
Returns: 2
{ 3, 5 }
6
Returns: 1
{ 6 }
6
Returns: 4
{ 3, 6 }
6
Returns: 1
{ 4, 6 }
6
Returns: 1
{ 5, 6 }
6
Returns: 1
{ 3 }
7
Returns: 5
{ 4 }
7
Returns: 3
{ 5 }
7
Returns: 4
{ 3, 5 }
7
Returns: 2
{ 6 }
7
Returns: 5
{ 3, 6 }
7
Returns: 1
{ 4, 6 }
7
Returns: 1
{ 5, 6 }
7
Returns: 2
{ 7 }
7
Returns: 6
{ 3, 7 }
7
Returns: 2
{ 4, 7 }
7
Returns: 1
{ 5, 7 }
7
Returns: 2
{ 3, 5, 7 }
7
Returns: 1
{ 6, 7 }
7
Returns: 2
{ 5, 6, 7 }
7
Returns: 1
{ 9999951, 9999952, 9999953, 9999954, 9999955, 9999956, 9999957, 9999958, 9999959, 9999960, 9999961, 9999962, 9999963, 9999964, 9999965, 9999966, 9999967, 9999968, 9999969, 9999970, 9999971, 9999972, 9999973, 9999974, 9999975, 9999976, 9999977, 9999978, 9999979, 9999980, 9999981, 9999982, 9999983, 9999984, 9999985, 9999986, 9999987, 9999988, 9999989, 9999990, 9999991, 9999992, 9999993, 9999994, 9999995, 9999996, 9999997, 9999998, 9999999, 10000000 }
10000000
Returns: 668858438
{ 9999902, 9999904, 9999906, 9999908, 9999910, 9999912, 9999914, 9999916, 9999918, 9999920, 9999922, 9999924, 9999926, 9999928, 9999930, 9999932, 9999934, 9999936, 9999938, 9999940, 9999942, 9999944, 9999946, 9999948, 9999950, 9999952, 9999954, 9999956, 9999958, 9999960, 9999962, 9999964, 9999966, 9999968, 9999970, 9999972, 9999974, 9999976, 9999978, 9999980, 9999982, 9999984, 9999986, 9999988, 9999990, 9999992, 9999994, 9999996, 9999998, 10000000 }
10000000
Returns: 503948594
{ 9999853, 9999856, 9999859, 9999862, 9999865, 9999868, 9999871, 9999874, 9999877, 9999880, 9999883, 9999886, 9999889, 9999892, 9999895, 9999898, 9999901, 9999904, 9999907, 9999910, 9999913, 9999916, 9999919, 9999922, 9999925, 9999928, 9999931, 9999934, 9999937, 9999940, 9999943, 9999946, 9999949, 9999952, 9999955, 9999958, 9999961, 9999964, 9999967, 9999970, 9999973, 9999976, 9999979, 9999982, 9999985, 9999988, 9999991, 9999994, 9999997, 10000000 }
10000000
Returns: 225971647
{ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 }
10000000
Returns: 0
{ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 }
10000000
Returns: 88081120
{ 20448, 20630, 20837, 23680, 23693, 24776, 28012, 46910, 57846, 58401, 62165, 63805, 70773, 73010, 75318, 79020, 80906, 84943, 85644, 87335, 100531, 104499, 107794, 109060, 114830, 115385, 122281, 130059, 131108, 134086, 134667, 139723, 154473, 156163, 156347, 165847, 173145, 174075, 180535, 193840, 199052, 203624, 206070, 222676, 222706, 225213, 234614, 240932 }
242811
Returns: 16770971
{ 42, 225, 252, 279, 337, 375 }
446
Returns: 186816480
{ 1377, 3234, 3518, 4831, 5038, 5039, 5811, 6429, 8037, 8909, 8989, 11429, 11957, 19078, 19190, 19862, 21733, 22513, 22575, 22703, 24399, 26162, 30057, 31074, 31468, 31623, 31968, 32579, 33427, 39232, 39344, 39834, 40001, 40503, 45791, 47479, 52149 }
54977
Returns: 949797228
{ 53, 70, 76, 165, 211, 214, 282, 294, 352, 364, 427, 454, 492, 518, 562, 610, 683, 714, 721, 739, 769, 801, 880, 885, 903, 928, 1126, 1210, 1211, 1257, 1277, 1282, 1368, 1413, 1457, 1459, 1588, 1589, 1625, 1628, 1641, 1649, 1661, 1696, 1762 }
1769
Returns: 262048960
{ 1, 8, 22, 23, 34, 45, 47, 55, 61, 64, 65, 72, 73, 74, 78, 85, 86, 87, 88, 89, 90, 93, 97, 102, 104, 116, 124, 138, 139, 144, 147, 149, 155, 163, 169, 174, 176, 183, 188, 192, 201, 202, 203, 213, 223 }
223
Returns: 0
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 25, 27 }
27
Returns: 0
{ 1, 159, 215, 325, 431, 475, 477, 603, 626, 705, 785, 857, 876, 1008, 1208, 1501, 1636, 1772, 1795, 1797 }
1798
Returns: 0
{ 202201, 343595, 346910, 688073, 785690, 975844, 1053041, 1094677, 1153147, 1548258, 1583178, 1621426, 1656316, 1678333, 1755216, 2108301, 2126603, 2360447, 2429492, 2470241, 2484986, 2551174, 2694964, 2735632, 2812277, 2920386, 2963195, 3270604, 3386928, 3469029, 3919261, 3971151, 4050684, 4776787, 4834524, 4870395, 4937867, 5061655, 5085142, 5189760, 5645238, 5788290, 5973553, 6036739, 6230379, 6300201, 6328506, 6383279, 6406882 }
6425044
Returns: 6134042
{ 42, 99, 141, 163, 194, 250, 255, 261, 271, 291, 350, 386, 426, 428, 592, 650, 784, 862, 890, 969, 970, 975, 1037, 1068, 1072, 1180, 1239, 1248, 1257, 1258, 1276, 1348, 1362, 1398, 1403, 1416, 1439, 1578, 1585, 1635 }
1647
Returns: 952607219
{ 386, 2111, 3559, 5663, 6608, 7294 }
7448
Returns: 718345633
{ 830722, 1519602, 1590816, 1924726, 2159961, 2470442, 2504960, 2647336, 3082631, 4262616, 4370676, 4553976, 4564380 }
4865046
Returns: 106491565
{ 170, 4362, 11111, 28355, 34122, 41044, 44945, 54811, 58615, 58917, 72782, 76700, 88390, 89632, 109228, 110362, 128793, 136369, 150764, 163945, 173263, 175128, 186390, 202581, 218699, 224581, 247920, 256528, 265576, 278130, 278438, 291970, 292107 }
312062
Returns: 473474015
{ 31, 34, 53, 77, 100, 102, 119, 142, 158, 160, 183, 211, 234, 235, 272, 285, 312, 344, 358, 381, 399, 418, 427, 471, 501, 534, 624, 686, 697, 708, 726, 827, 878, 880, 953, 1004, 1015 }
1024
Returns: 31095667
{ 58, 186, 191, 232, 481, 502, 643, 718, 728, 748, 857, 1150, 1166, 1177, 1201, 1268, 1300, 1327, 1332, 1356, 1454, 1470, 1567, 1626, 1670, 1733, 1771, 1829, 1879, 1891, 2009, 2013, 2039, 2157, 2279 }
2334
Returns: 265986389
{ 2, 18, 25, 29, 30, 41, 42, 46, 47, 50, 51, 53, 54, 56, 57, 60, 61, 63, 64, 66, 67, 70, 72, 75, 79, 82, 84, 86, 88, 103, 109, 110, 115, 117, 118, 119, 120, 121, 132, 133, 134 }
135
Returns: 0
{ 31, 48, 59, 61, 75, 89, 119, 164, 169, 230, 372, 452, 471, 472, 548, 657, 683, 701, 806, 836, 838, 853, 866, 894, 899, 951, 1016, 1077, 1082, 1083, 1092, 1148, 1153, 1193, 1243, 1320, 1323, 1366, 1433 }
1449
Returns: 240283473
{ 28206, 55910, 207475, 220447, 244264, 536331, 679980, 742980, 779437, 784691, 887974, 967072, 1041257, 1073666, 1324454, 1482206, 1573587, 1588027, 1634894, 1753880, 1888638, 1893043, 1923914, 1962835, 2031414, 2237697, 2283338, 2461657 }
2631605
Returns: 635495604
{ 15725, 16176, 17964, 36965, 38469, 43366, 47213, 48589, 50419, 51913, 57769, 58032, 61836, 71594, 76062, 90228, 100573, 107241, 111338, 114178, 119719, 122552, 127756, 135315, 136478, 140101, 140272, 143192, 157255, 158990, 160551 }
162504
Returns: 329864564
{ 33518, 46003, 46760, 113099, 217202, 272542, 308708, 321630, 353005, 397480, 476556, 522574, 602807, 603754, 698895, 729752, 859277, 861454, 872062, 894000, 926569, 983949, 1053718, 1053816, 1141346, 1172811, 1212566, 1272861, 1337001, 1342854, 1487226, 1500640, 1631587, 1652884, 1768573, 1788821, 1810498, 1835934, 1848605, 1872304, 1924947, 2055783, 2067767, 2067968, 2090147, 2153425, 2208500, 2274339 }
2287861
Returns: 868680112
{ 29836, 31467, 108722, 124525, 124963, 133956, 168840, 196449 }
200872
Returns: 568322828
{ 12409, 16582, 20385, 40500 }
41567
Returns: 291906104
{ 11, 41, 51, 80, 99, 177, 184, 247, 258, 263, 285, 310, 337, 573, 650, 723, 774, 788, 798, 864, 880, 967, 1063, 1077, 1078, 1114, 1117 }
1194
Returns: 245832349
{ 113772, 345565, 563525, 566755, 640193, 686756, 727397, 739258, 763723, 806966, 822400 }
854794
Returns: 566456916
{ 52, 242, 288, 327, 603, 945, 1025, 1046, 1264, 1353, 1450, 1629, 1880, 1947, 2009, 2293, 2386, 2574, 2729, 2906, 2918, 3106, 3330, 3385, 3658, 3793 }
4025
Returns: 310606505
{ 13, 1225, 1283, 1336, 1865, 4007, 4056, 4830, 5185, 5318, 5650, 5685, 5988, 6002, 6741, 6884, 7748, 8313, 8330, 8853, 8948, 9243, 9376, 10174, 10348, 11419, 11467, 12125, 12191, 12337, 12384, 13339, 13779, 13863, 14663 }
15057
Returns: 203474244
{ 155, 1266, 1841, 1900, 2536, 2623, 4604, 5389, 6639, 6852, 7644, 8081, 8099, 8416, 8932 }
10068
Returns: 311432888
{ 54, 2141, 4267, 4899, 5450, 5501, 5769 }
6797
Returns: 104195643
{ 456, 3875, 5991, 6077, 8901, 11202, 11217, 12579, 24076, 25939, 37309, 42946, 45396, 46172, 47684, 51265, 52745, 53588, 53769, 54810, 55092, 57476 }
59427
Returns: 812752270
{ 42724, 79166, 188247, 434407, 480631, 564878, 650656, 652493, 708988, 931761, 946156, 1115360, 1133583, 1175049, 1483982, 1580690, 1661151, 1728254, 1879486, 1898767, 1953963, 2050474, 2055567, 2080250 }
2497937
Returns: 348111187
{ 1, 135, 148, 157, 197, 218, 294, 336, 342, 347, 350, 351, 352, 354, 361, 370, 383, 393, 406, 418, 463, 495, 499, 569, 586, 656, 766, 793, 794, 821, 978, 989, 1018, 1101, 1148, 1156, 1234, 1375, 1457 }
1464
Returns: 0
{ 8, 21, 31, 38, 74, 148, 157, 184, 186, 197, 205, 210, 318, 320, 331, 334, 348, 512 }
523
Returns: 710291366
{ 6432, 9177, 42539, 53265, 61371, 95617, 108401, 113986, 115568, 117994, 124219, 139506, 145072, 151245, 151348, 156317, 197301, 200664, 231375, 237006, 246838, 261941, 273893, 285809, 288631, 292995, 298114, 298297, 303202, 367460, 374811, 375703, 383460, 384923, 391483, 393260, 423760, 465817, 469516, 514519, 533822, 544412 }
545082
Returns: 826244726
{ 129, 570, 795, 907, 1270, 1340, 1455, 1547, 1653, 1736, 1787, 1804, 1825, 1923, 2039, 2153, 2478, 2484, 2821, 3001, 3079, 3207, 3226, 3334, 3566, 3602, 3616, 3700, 3707, 4058, 4358, 4743, 4787, 4860, 5339, 5762, 5847, 5866, 6305, 6415, 6448, 6467, 6528, 6539 }
6585
Returns: 81373743
{ 409, 675, 699, 709, 749, 833, 857, 922, 1040, 1224, 1242, 1252, 1641, 1762, 1765, 1778, 1876 }
1880
Returns: 13854960
{ 808, 817, 910, 1005 }
1406
Returns: 888302
{ 12387, 35991, 68999, 115829, 303971, 311351, 344367, 426318, 450781, 475920, 639402, 782087, 829785, 848738, 893159, 1023373, 1118761, 1185102, 1388493, 1452467, 1485695, 1492527, 1536363, 1557876, 1629690, 1642685, 1692899, 1796702, 1861775, 1876618, 1884217, 1917341, 1922179, 1990556, 2053730, 2079399, 2127478, 2146394 }
2186646
Returns: 509744526
{ 1, 2, 10 }
11
Returns: 0
{11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160}
15000
Returns: 81622123
{11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160}
11161
Returns: 916922290
{9111111, 9111112, 9111113, 9111114, 9111115, 9111116, 9111117, 9111118, 9111119, 9111120, 9111121, 9111122, 9111123, 9111124, 9111125, 9111126, 9111127, 9111128, 9111129, 9111130, 9111131, 9111132, 9111133, 9111134, 9111135, 9111136, 9111137, 9111138, 9111139, 9111140, 9111141, 9111142, 9111143, 9111144, 9111145, 9111146, 9111147, 9111148, 9111149, 9111150, 9111151, 9111152, 9111153, 9111154, 9111155, 9111156, 9111157, 9111158, 9111159, 9111160}
9999999
Returns: 477491848
{195, 211, 227, 230, 260, 297, 346, 350, 403, 411, 428, 485, 594, 606, 876 }
1000
Returns: 975206486
{81843, 203841, 223102, 579549, 707955, 928779, 995896, 1196860, 1330468, 1370300, 2240440, 2334334, 2588146, 2683539, 2714501, 2808465, 3423725, 3744542, 4102869, 4115036, 4325727, 4469437, 4519712, 4864154, 5008828, 5129895, 5216758, 5540665, 5778083, 5818309, 5851943, 6470649, 6526605, 7205539, 7325359, 7490717, 7531645, 8043324, 8140624, 8295806, 8486730, 8519812, 8752492, 8919377, 9145742, 9246107, 9288943, 9356383, 9827913, 9855351 }
10000000
Returns: 438814806
{10000000 }
10000000
Returns: 236946917
{10000, 10001, 10002, 10003, 10004, 20000, 30000, 40000 }
10000000
Returns: 723089896
{100, 200, 201, 300, 3000, 123456, 123458, 999999, 1000100, 2000000, 9999990 }
9999997
Returns: 719252766
{7000000, 7000001, 7000002, 7000003, 7000004, 7000005, 7000006, 7000007, 7000008, 7000009, 7000010, 7000011, 7000012, 7000013, 7000014, 7000015, 7000016, 7000017, 7000018, 7000019, 7000020, 7000021, 7000022, 7000023, 7000024, 7000025, 7000026, 7000027, 7000028, 7000029, 7000030, 7000031, 7000032, 7000033, 7000034, 7000035, 7000036, 7000037, 7000038, 7000039, 7000040, 7000041, 7000042, 7000043, 7000044, 7000045, 7000046, 7000047, 7000048, 7000049 }
10000000
Returns: 526195138
{10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000, 110000, 120000, 130000, 140000, 150000, 160000, 170000, 180000, 190000, 200000, 210000, 220000, 230000, 240000, 250000, 260000, 270000, 280000, 290000, 300000, 310000, 320000, 330000, 340000, 350000, 360000, 370000, 380000, 390000, 400000, 410000, 420000, 430000, 440000, 450000, 460000, 470000, 480000, 490000, 500000 }
10000000
Returns: 100088771
{500003, 500004, 500005, 500006, 500007, 500008, 500009, 500010, 9100001, 9100002, 9100003, 9100004, 9100005, 9100006, 9100007, 9100009, 9100010, 9900001, 9900002, 9900003, 9900004, 9900005, 9900006, 9900007, 9900008, 9900009, 9900010 }
10000000
Returns: 95730541
{999999 }
10000000
Returns: 115550965
{1000000 }
10000000
Returns: 795702849
{198, 1588, 2198, 2288, 2635, 3022, 3094, 3196, 3579, 3672, 4600, 5250, 5845, 6039, 6192, 6225, 6557, 6619, 7409, 7449, 7959, 8714, 9057, 9504, 9703, 9923, 10956, 11009, 11512, 12009, 12102, 12293, 13459, 14344, 14799, 14990, 15282, 16203, 16520, 18191, 18539, 19157, 19590, 19797, 19816, 20056, 20329, 20473, 20486, 20581 }
20601
Returns: 350354224
{3 }
1004
Returns: 102915696
{195, 211, 227, 230, 260, 297, 346, 350, 403, 411, 428, 485, 594, 606, 9899999 }
10000000
Returns: 696736572
{1 }
20
Returns: 0