Problem Statement
Given a positive integer N, we may define the following unary functions:
- sum(N) is the sum of the decimal digits of N.
- prod(N) is the product of the decimal digits of N.
- prod3(N) is the product of the three largest decimal digits of N.
If N has less than three digits, prod3(N)=prod(N). - smallest(N) is the smallest decimal digit of N.
- first(N) is the first (most significant) decimal digit of N.
Now we may define the binary operator @ as follows:
- X@Y = 5 * prod3(X) + first(X) * sum(Y) + smallest(Y)
Examples:
- sum(47) = 4+7 = 11
- prod(2322) = 2*3*2*2 = 24
- prod3(2322) = 3*2*2 = 12
- prod3(47) = 4*7 = 28
- smallest(427) = 2
- first(427) = 4
- 12034@217 = 5 * (4*3*2) + 1 * (2+1+7) + 1 = 131
We will be interested in expressions that use only the operator @ and a single variable x. Valid expressions are defined using the following rules:
- x is a valid expression.
- If E and F are valid expressions, then (E@F) is a valid expression.
- Any string that can not be formed using the rules above is not a valid expression.
You are given an
Definition
- Class:
- NewOperator
- Method:
- minimumCount
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int minimumCount(int x, int goal)
- (be sure your method is public)
Constraints
- x will be between 1 and 1,000,000, inclusive.
- goal will be between 1 and 2,000,000,000, inclusive.
Examples
13
13
Returns: 0
"x" is a valid expression that evaluates to 13.
374
465
Returns: 1
"(x@x)" is a valid expression. For x=374 its value is 5 * (7*4*3) + 3 * (3+7+4) + 3 = 465.
374
469
Returns: 2
"(x@(x@x))" evaluates to 469.
374
659
Returns: 2
"((x@x)@x)" evaluates to 659. Note that the operator is not associative.
374
1024
Returns: 8
654321
12
Returns: 10
654321
1234567
Returns: -1
374
664
Returns: 3
374
1160
Returns: 5
999999
4140
Returns: 1
999999
4139
Returns: -1
999999
4141
Returns: -1
999989
4130
Returns: 1
999986
4140
Returns: -1
518150
3327
Returns: 91
511805
3327
Returns: 91
845521
3706
Returns: 62
443377
3909
Returns: 39
84507
3834
Returns: 32
4700
44
Returns: 1
470
44
Returns: 1
47
44
Returns: 8
929
929
Returns: 0
929
992
Returns: 1
41
41
Returns: 0
41
3100
Returns: -1
992
929
Returns: -1
992
992
Returns: 0
152152
34642
Returns: -1
325221
364326
Returns: -1
325232
5235223
Returns: -1
51244
5325353
Returns: -1
532254
532523234
Returns: -1
13344
1987654321
Returns: -1
654321
654321
Returns: 0
1000000
1000000
Returns: 0
289384
2887
Returns: 8
692778
916
Returns: 10
747794
2336
Returns: 7
885387
493
Returns: 7
516650
1422
Returns: 6
202363
2028
Returns: 18
368691
60
Returns: 6
897764
1927
Returns: 11
180541
3427
Returns: 34
89173
3737
Returns: 17
5212
3369
Returns: 21
702568
430
Returns: 10
465783
1531
Returns: 12
722863
1124
Returns: 12
174068
3136
Returns: -1
513930
3803
Returns: 21
634023
3059
Returns: 18
133070
2168
Returns: 18
961394
2457
Returns: 7
175012
2043
Returns: 11
176230
1374
Returns: 7
484422
920
Returns: 9
413785
2538
Returns: 15
575199
2325
Returns: 15
798316
371
Returns: 10
566414
3527
Returns: -1
776092
981
Returns: 13
759957
1874
Returns: 11
806863
3171
Returns: -1
906997
1282
Returns: 11
702306
926
Returns: 9
477085
328
Returns: 7
660337
2506
Returns: 16
750847
1730
Returns: 14
661314
1858
Returns: 12
616125
1896
Returns: 15
819583
546
Returns: 9
898815
1368
Returns: 10
515435
2365
Returns: 18
344044
1751
Returns: 12
1
2000000000
Returns: -1
4
16
Returns: 3
13
4
Returns: 3
731425
137
Returns: 8
1
100000000
Returns: -1
1
2
Returns: 5
10
2000000000
Returns: -1
654321
12
Returns: 10
1
3000
Returns: 18
654321
123467
Returns: -1
654321
1234567
Returns: -1
999
998
Returns: 11
26545
352548
Returns: -1
374
1024
Returns: 8