Problem Statement
_ |_| |_|There are 7 line segments in each position, and each line segment can hold exactly one match. Matches cannot be placed anywhere except on the line segments.
You are given an integer N containing exactly D digits (with no leading zeroes). Spell out the number using matches on the paper. Each digit must occupy a single position. The following diagram shows how each digit should be formed:
_ _ _ _ _ _ _ _ 0 - | | 1 - | 2 - _| 3 - _| 4 - |_| 5 - |_ 6 - |_ 7 - | 8 - |_| 9 - |_| |_| _| |_ _| | _| |_| | |_| _|After you lay out the initial arrangement, you are allowed to move up to K matches. You cannot discard matches or add new matches. After you make all your moves, the final arrangement must be valid (as described above) and the integer formed by the arrangement must contain the same number of digits as the original integer. Leading zeroes are allowed. Return the number of distinct integers that can be formed in this manner. Note that the original integer counts toward the total because it always obtainable by making 0 moves.
Definition
- Class:
- NumbersAndMatches
- Method:
- differentNumbers
- Parameters:
- long, int
- Returns:
- long
- Method signature:
- long differentNumbers(long N, int K)
- (be sure your method is public)
Constraints
- N will be between 1 and 10^18 - 1, inclusive.
- K will be between 1 and 126, inclusive.
Examples
10
1
Returns: 4
Here you can compose numbers 10, 19, 16 and 70: _ _ | | | -----> | | | _| |_| _| |_| _ _ | | | -----> | |_| _| |_| _| _| _ _ | | | -----> | |_ _| |_| _| |_| _ _ _ | | | -----> | | | _| |_| | |_|
23
1
Returns: 4
This time it's possible to compose 22, 23, 25 and 33.
66
2
Returns: 15
Here you can move up to 2 matches, so quite a lot of numbers can be composed. Note that you are allowed to move a match from one digit to another one, so, for example, it's possible to compose 38. However, you can't discard a match or add a new match, so, for example, you can't compose 55 or 88.
888888888
100
Returns: 1
You are allowed to move a lot of matches, but still it's only possible to compose 888888888.
444444444444444444
2
Returns: 1
Given that at most 2 matches can be moved, only the initial number can be composed.
444444444444444444
3
Returns: 1225
1
10
Returns: 2
4
10
Returns: 1
6
10
Returns: 3
9
10
Returns: 3
8
10
Returns: 1
584780
7
Returns: 64583
1457
2
Returns: 12
179789
2
Returns: 168
2933596
7
Returns: 505644
447460
6
Returns: 9420
78689
4
Returns: 2555
7244
8
Returns: 465
66212
1
Returns: 10
25311
8
Returns: 4728
538
1
Returns: 13
71032
9
Returns: 7783
96
2
Returns: 15
396
4
Returns: 132
59481
1
Returns: 18
3318876
12
Returns: 1138862
94492
5
Returns: 3620
39857
5
Returns: 6524
5649257
10
Returns: 831739
5806545
9
Returns: 765790
299351
1
Returns: 26
5671702
10
Returns: 351549
5041963
14
Returns: 1167792
2770
7
Returns: 734
4378253
5
Returns: 32015
3352
3
Returns: 237
569
3
Returns: 112
912
5
Returns: 147
79418
10
Returns: 10521
239
2
Returns: 35
4243
9
Returns: 1098
5891911393
9
Returns: 141044049
810
1
Returns: 7
58866962718526
18
Returns: 2796495743545
77457252
5
Returns: 6409
369048204097567
16
Returns: 15329445832838
72222962555318370
9
Returns: 21840703301
9948674
5
Returns: 44617
968204
8
Returns: 60198
89337183138636
8
Returns: 4757717426
815178010
5
Returns: 133717
29791019054717928
3
Returns: 71771
84424056394501305
16
Returns: 228739684270103
95480254595884168
9
Returns: 175540553740
5
36
Returns: 3
73386163865874
1
Returns: 110
49045826563
11
Returns: 1688392108
618
1
Returns: 7
21208323598517225
5
Returns: 12447266
6795227713992567
34
Returns: 474380414263848
8
60
Returns: 1
571625929
1
Returns: 43
40384360072744351
27
Returns: 5480331841122702
437
2
Returns: 12
70
1
Returns: 4
73593195
9
Returns: 4903784
95218853389
7
Returns: 88236832
87
4
Returns: 19
9606773610310312
11
Returns: 240195937548
46953996133488729
1
Returns: 189
2597152058426292
1
Returns: 94
44888823
3
Returns: 3397
3944694855090580
12
Returns: 4972523101620
3679831
9
Returns: 913451
23528
1
Returns: 15
555144151
14
Returns: 10529252
52
2
Returns: 6
144776303177556463
36
Returns: 9462320934663752
566
1
Returns: 12
625024
3
Returns: 461
753
1
Returns: 5
84647859393083902
4
Returns: 5752005
18802230967797
4
Returns: 511339
83573501233396242
6
Returns: 188980848
3061307575233837
6
Returns: 96062950
9391332969073671
27
Returns: 761305760293876
8590430783287900
10
Returns: 289574049548
7327210417031947
17
Returns: 4029386929968
811406970855869192
17
Returns: 3664510893077393
337972959334662208
23
Returns: 53459276914630388
328352453435175
13
Returns: 726369733414
2795465984945472
15
Returns: 15734819733474
966264404849669735
11
Returns: 4463132890261
17032331246316251
6
Returns: 26349378
535167791648838
8
Returns: 4799186304
751452600138841876
4
Returns: 1600248
90020061282502153
8
Returns: 6675645800
712916399035092062
13
Returns: 66913890482787
877552597773714842
34
Returns: 9462224772921064
8745998130609693
20
Returns: 302264148195226
4607457303101098
24
Returns: 685330255502119
55269389046032838
16
Returns: 354019876642158
7269326896563393
17
Returns: 187543404025831
571152816476731599
37
Returns: 18415520351694236
669291984052404
12
Returns: 528272692048
1303625962603750
9
Returns: 34965179849
341518108736536963
2
Returns: 8582
9076500865561527
12
Returns: 1964443222396
1016578928468547
20
Returns: 368592135484824
45867338383585985
20
Returns: 1690850760269308
7945346246416888
7
Returns: 792834613
20870941125871905
23
Returns: 4948770722157148
6136393239367948
18
Returns: 370196604937287
70454790698050302
125
Returns: 5834803841784360
168227367326959853
125
Returns: 64527700155023418
13278173218807769
125
Returns: 4735794663165804
17887262576459834
126
Returns: 7400894886230503
9020404399103103
125
Returns: 735117180482704
7639400097564080
125
Returns: 499226907048416
4508862073077470
125
Returns: 761316888721584
6836400496017025
126
Returns: 591462657520232
999999999999999999
126
Returns: 147519902109597
666666666666666666
126
Returns: 147519902109597
811189876543210111
35
Returns: 24462028021923946
888811111111188888
126
Returns: 73756864709370409
123456543216789987
25
Returns: 55714945330330022
103456859212945679
126
Returns: 73756864709370409
123456789123456789
8
Returns: 16726023513
12345678901234567
99
Returns: 5575389364259316
888888811012345679
126
Returns: 25164471596521500
88123344556677990
122
Returns: 7504216310916973
666666666666666666
100
Returns: 147519902109597
404404012211439
27
Returns: 29248248238223
1234567890123234
126
Returns: 646475143167696
66666666666666666
126
Returns: 21817331427269
123456789111299765
126
Returns: 39166520188298994
716385113497812334
123
Returns: 24462048267074250
48209834123
13
Returns: 4429759478
123456789012345677
126
Returns: 39166520188298994
23885619856348745
100
Returns: 4975000553975848
98765432109876123
126
Returns: 7585959247501861
123456789012345678
126
Returns: 68090790265439823
122252525252521337
125
Returns: 39166520188298994
444444444444444444
126
Returns: 314403345046093
111111111888888888
126
Returns: 73756864709370409
1234567891234567
126
Returns: 474380414264208
123456789123456
126
Returns: 65924729666145
12345678998765432
125
Returns: 7585959247501861
111111111999999999
126
Returns: 18415520400090492
12345678912345678
126
Returns: 6342769928297556
2
1
Returns: 2
11
1
Returns: 3
111111111111111111
126
Returns: 262144