Problem Statement
1. It contains each element of S exactly once.
2. For each pair of consecutive sequence elements s1 and s2, (s1 - s2) is not divisible by p.
Return the number of p-sequences of S, modulo 1234567891.
Definition
- Class:
- PSequence
- Method:
- count
- Parameters:
- int[], int
- Returns:
- int
- Method signature:
- int count(int[] S, int p)
- (be sure your method is public)
Constraints
- S will contain between 1 and 30 elements, inclusive.
- All elements of S will be distinct.
- Each element of S will be between -1,000,000 and 1,000,000, inclusive.
- p will be between 1 and 1,000, inclusive.
Examples
{-1,0,1,2,3}
10
Returns: 120
All permutations of numbers are valid, so we have 5! = 120 sequences.
{6,2}
4
Returns: 0
Both numbers have the same remainder modulo 4 and so we cannot create a valid 4-sequence from them.
{1,2,3,4}
3
Returns: 12
{4,6,8,-3,7}
2
Returns: 12
{0,-5,1,2,3,4,5,6,7,8,9,10,12,213,123,122,21,2136,4534,2312,12312,34543,2765,56756,462346,46434,4235,2353,352342,23433}
4
Returns: 681816692
{796052,191918,480107,-830356,-895423,-515041,591413,-107359,-433144,-199405,641543,926798,579866}
4
Returns: 470634624
{807395,227594,972638,777467,-103510,-71395,247016,250862,214823,-410032,357815}
6
Returns: 86400
{-252280,-368452,-303262,-374344,441497,-359356,-210649,-267136,-213643,740639,653444,951005,329633,929117,69836,903329,685898,219437,-612394,-20521,-67453,940187,-93178,-90208,-280285,282425,-659722,479129,-509179}
64
Returns: 224458919
{-131224,-835102,-195724,727175,-618208,-933280,-199303,166328,-649837,-810067,-656524,520925,-529534,878546,560873,412826,-17371,-390262}
4
Returns: 965607765
{-220576,-546970}
9
Returns: 0
{935846,307874}
2
Returns: 0
{-225805,108893,-297289,-378832,-649054,-987451,946373,145268,879800,836174,205970,-281833,-976081,562139,279278}
450
Returns: 266971431
{60875,711167,786086,740843,-296986,-202264,-450232,1280,656498,-101014,888056,-451798}
4
Returns: 10160640
{356048,-549295,650300,69389,-367054,-934147,840023,567719,164588,633239,-149836,-710620,-388705,231293,-555004,-339886,-567820,310628,943397,-460231}
5
Returns: 10088554
{174539,95375,-729121,453926,-324496,83600,-46240,-302272,895631,-37600,-673405,168968,-596572,-87658,-160654}
2
Returns: 0
{866570,591971,-118828,824093,314495,-308128,413843,832694,772121,-961372,915728,742880,-199069,-806224,909650,824795,-603160,370331,-681574,992786,320339,582509,-741553,21278,309980,-978769,144269,416462,101444}
240
Returns: 194500727
{-4399,-355810,-25468,-19537,406946,318539,-90172,493169,-862270,-562051,-743431,-993886,-308461,259397,-78883,-631336,347303,-100735,-117679,-823180,612998,-24130,-606178,195803,-384691,471371,811568,-449575,-883192,-734176}
1
Returns: 0
{181481,576347,202304,-378526,-74698,282647,776576,-246487,-240208,329660,509207,-288685,476582,-231022,355907,754679,300353,520178,421304,130955,-965800,-219067,-459706,-212596,-431419,528581,624935,773531,-1105}
4
Returns: 20947336
{415196,234992,-82645}
3
Returns: 0
{542762,967871,692651,-360223,828677,134255,600782,183944,-839869,-280540,470462,281864,953960,150617,135449,920327,551579,66218,-828760,727688,-596494,254825,-307492,744857,-56908}
3
Returns: 0
{-835693,-559921,-314092,-388306,-862930,-75367,-424033,-117853,105128,479021,-829540,-697141,871886,-528046,181295,-86497,-216775,-549826,241859,453632,692300,-901396,-510553}
9
Returns: 48165572
{-318037,520736,409835,-611809,-451900,831263,-972661,40232,-466693,-660385,568025,738944,-96664,-319633,897626,491288,-275221,-251767,-346738,884843,-482533,-979975,233573}
6
Returns: 0
{-236275,-170533,951341,881867,911969,314765,-507226,828635,565226,-397075,403328,586451,-48382,-322762,4949}
6
Returns: 0
{-849022}
720
Returns: 1
{68879,9020,949025,-210316,-112690,697934,144095,-655231,-32533,-809809,-446773,650615,-162892,116870,-579526,142628,826535,113765,-289900,-627478,-97585,-440488,16058,159206,-998077,-18019,-312427,383924,-305047}
7
Returns: 133068197
{941915,-967405,964460,407921,-400426,74354,-28243,26747}
848
Returns: 40320
{-522859,-43597,148781,689315,-700258,-429640,416747,-108715,-233230,-415915,295937,976535,-496180}
2
Returns: 0
{-516682,-998515,-95038,-718645,-471073,569426}
317
Returns: 720
{505847,188978,648062,-680311,461450,-672691,842465,366989,182816,-408082,919886,76772,588725,-525229,-295960,-158836,-74023,-215098,-186445,-915157,836804,-258592,686015,-266839,-832651,796910}
5
Returns: 122824684
{-40771,864890,-169198,-33088,-400552,-632734,978188,684899,-243901,652877,-230890,-141430,-109201,-674854,37460}
484
Returns: 266971431
{-22621,-518914,-952639,876017,-774244,-672391}
874
Returns: 720
{621245,-505465,330074,-596077,-452671,599798,-290455,-218221,-283546,-112915,863849,-201565,234326,-391537,719609,160958,-690001,-393148,-892441,886034,-560776,316385}
535
Returns: 781471490
{298187,-682615,960419,587753,591524,610790,-795952,935081,871985,598952,-466615,-317902,421187,617231,-745543,963503,-486388,-137299,-355399,471461,745202,-311311}
7
Returns: 334149367
{360986}
7
Returns: 1
{209426,-30286}
5
Returns: 2
{-866746,-61450,913577,-470974,-303577,-142063,-42427}
1
Returns: 0
{-713977,486746,-525952,-162820,-336223,-868915,337970,381416,-855649,-644374}
2
Returns: 0
{-438481,136097,842492,-52921,-175705,-834829,2966,213242,-44203,-204355,291671,-677719}
6
Returns: 0
{150110,909311,-125227}
5
Returns: 6
{342713,-716071,830861,-276226,489320,775982,991529,-352750,-281911,681437,708977,400991,709754,-571969,170099,-630571,-216808,-925492,457829}
916
Returns: 182701988
{-802567,-187021,709586,-848086,178673,246965,-511531,3140,-715066,89774,601055,382634,646199,293465,-800614,772838,109913,950564,-145174,-548377,373367,-120319,-876445,-109411}
1
Returns: 0
{-520000,-951823,-925702,612683,208151,909899,-158818,312704,212555,862391,473564,-405550}
9
Returns: 1900800
{652790,233264,791582,-511906,279665,-624499,905702,-663952,-401671,992417,-607561,815627,-242680,552512,-221776,337910,425660}
4
Returns: 1160923153
{-281158,526175,-400882,-389392,-862114,122915,962894,762689,393782,825668,-846910,111491,186947,-654280,66200,784514}
4
Returns: 527847412
{300035,354671,866105}
2
Returns: 0
{934862,-166525,395843,105887,-880666,203153,195422,-903742,419387,-55450}
7
Returns: 947520
{489179,79955,641582,98039,506447,-253462,903155,-385795,85460,582197,-111484,608630,796832,-383254,-988273,-47485}
137
Returns: 1048107835
{615791,316313,751280,-393226,765077,-967129,-439063,965264,-984949,701399,-410995}
5
Returns: 7871040
{667931,-131704,-481150,400202,91562,-317416,862811,163856,-426985,458951,-29929,470003,-579670,-951187,-594688,-276919,600338,-688651,611363,-818482,-451306,-406753,-860119}
7
Returns: 167016689
{651803,-638923,341954,643616,-201832,831212,264947,-171451,-771727,-928426,-578641,-509971,852797,348176,-344485}
693
Returns: 1219029553
{-376519,45341,965933,-278269,-404173,-762610,-51298,-972505,725198,-760369,-903811,-729733,-694786,-864691,423194,737270,-62257,-91342}
1
Returns: 0
{-644074,-659701,-736357,989750}
8
Returns: 8
{1,2,3}
2
Returns: 2
{-39687,-281936,-882818,26407,-566116,-381732,-463021,31625,407388,443584,268996,882876,-312395,-905282,876727,539349,177195,745574,-558322,-396565,538984,-663682,-543516,-174447,528229,758347,142477,596116,722187,212599}
9
Returns: 53652803
{171317,-105894,-719045,336427,-744666,687127,-560935,-230358,699209,-781040,-479805,958797,929564,-425375,424731,122937,-587136,981475,-904134,936173,-199634,876557,142145,-50860,425576,340477,-341213,932327,174451,535960}
10
Returns: 379672316
{0,1,2,3,4,185,5,186,6,187,368,7,188,369,550,8,189,370,551,732,913,9,190,371,552,733,914,1095,1276,1457}
181
Returns: 342434875
{0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 30, 31, 32, 33, 40, 41, 42, 50, 51, 60, 61, 70 }
10
Returns: 1215150421
{1, 11, 21, 2, 12, 22, 32, 3, 13, 23, 33, 43, 4, 14, 24, 34, 44, 54, 64, 5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 105 }
10
Returns: 823292257
{1, 21, 2, 22, 3, 23, 4, 24, 5, 25, 6, 26, 7, 27, 8, 28, 9, 29, 10, 30, 11, 31, 12, 32, 13, 33, 14, 34, 15, 35 }
20
Returns: 761219535
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }
5
Returns: 796532187
{1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 39, 42, -42, 1337, 666, 12835, 65, 71, 101, 102, 103, 104, 105, 106, 107, 108, 110 }
42
Returns: 1154946839
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15 }
15
Returns: 761219535
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }
30
Returns: 767765455
{-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19 }
12
Returns: 18950806
{8744, 6025, 7384, 3333, 27355, 31287, 30144, 22970, 28604, 22231, 6479, 20737, 14664, 27723, 493, 7796, 13385, 25984, 6888, 31738, 32658, 16462, 7108, 28631, 16879, 7071, 11730, 11237, 7260, 12500 }
298
Returns: 305058461
{-15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }
15
Returns: 761219535
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }
1000
Returns: 767765455
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }
33
Returns: 767765455
{1, -1 }
1000
Returns: 2
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }
1000
Returns: 767765455