Problem Statement
- a single resistor. The resistance of such circuit is equal to the resistance of the resistor. Or
- several circuits R1,R2,...,Rn combined in serial. The resistance is equal to R1+R2+...+Rn. Or
- several circuits R1,R2,...,Rn combined in parallel. The resistance is equal to 1/((1/R1)+(1/R2)+...+(1/Rn)).
Given two positive integers a and b, your task is to build a serial-parallel resistor circuit that has resistance equal to a/b. You are only allowed to use two kinds of resistors: R=1 and R=2. Return the minimal number of resistors needed. If the circuit cannot be built with 16 or less resistors, return -1.
Definition
- Class:
- BuildCircuit
- Method:
- minimalCount
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int minimalCount(int a, int b)
- (be sure your method is public)
Constraints
- a and b will each be between 1 and 50000, inclusive.
Examples
1
1
Returns: 1
One unit resistor is enough.
2
3
Returns: 2
Combine R=1 and R=2 in parallel.
6
5
Returns: 3
Combine R=1 and R=2 in serial, then with R=2 in parallel.
42
47
Returns: 7
1
20
Returns: -1
756
874
Returns: 10
2902
1198
Returns: 12
6123
4328
Returns: 15
4401
4622
Returns: 15
867
6703
Returns: -1
9243
8878
Returns: 16
9951
3251
Returns: 16
5831
9127
Returns: 16
15874
3005
Returns: 16
33110
46621
Returns: -1
48536
13004
Returns: 16
156
16
Returns: 8
284
1491
Returns: 7
28
7
Returns: 2
16816
32339
Returns: -1
50000
50000
Returns: 1
6
2
Returns: 2
9
10
Returns: 5
4
8
Returns: 2
7
4
Returns: 4
8
9
Returns: 5
7
9
Returns: 5
10
3
Returns: 4
2
9
Returns: 5
10
2
Returns: 3
8
9
Returns: 5
108
87
Returns: 6
178
69
Returns: 8
91
149
Returns: 10
17
7
Returns: 5
77
195
Returns: 10
181
42
Returns: 9
93
113
Returns: 9
69
85
Returns: 9
174
45
Returns: 6
183
55
Returns: 9
155
110
Returns: 6
183
116
Returns: 9
86
145
Returns: 10
82
148
Returns: 8
73
75
Returns: 10
155
136
Returns: 9
81
125
Returns: 9
96
84
Returns: 4
90
14
Returns: 7
37
20
Returns: 7
997
1625
Returns: 13
1825
615
Returns: 10
2893
622
Returns: 14
1917
2240
Returns: 13
1859
1418
Returns: 14
1921
2211
Returns: 14
1721
2140
Returns: 14
1549
296
Returns: 13
233
2937
Returns: -1
635
2341
Returns: 15
520
1156
Returns: 10
2955
866
Returns: 14
1107
2411
Returns: 14
777
2078
Returns: 14
2549
1029
Returns: 13
1284
2223
Returns: 12
1285
901
Returns: 12
2887
2164
Returns: 14
804
1051
Returns: 12
1992
460
Returns: 10
2781
2757
Returns: 13
1798
1909
Returns: 13
2461
375
Returns: 13
1480
2442
Returns: 6
1906
1420
Returns: 12
953
858
Returns: 13
1536
1231
Returns: 13
79
553
Returns: 7
110
1571
Returns: -1
1682
1205
Returns: 13
44800
26355
Returns: 13
47546
13255
Returns: -1
43405
18878
Returns: -1
39249
35028
Returns: 13
24784
24363
Returns: -1
31159
2712
Returns: -1
2596
6158
Returns: 13
17613
25382
Returns: -1
46433
9821
Returns: -1
11874
21960
Returns: 15
3832
16626
Returns: 16
38681
34214
Returns: -1
24505
42825
Returns: -1
23190
29013
Returns: 16
36290
11061
Returns: -1
46486
17419
Returns: -1
49565
49459
Returns: -1
16574
25138
Returns: -1
47212
36950
Returns: 16
43822
41804
Returns: -1
28275
20358
Returns: 7
38775
14665
Returns: 15
49035
8416
Returns: -1
39338
26470
Returns: -1
32675
3818
Returns: -1
34316
36434
Returns: 16
11233
10577
Returns: -1
6838
46382
Returns: -1
5031
34017
Returns: -1
39864
49153
Returns: -1
39472
27344
Returns: 14
24141
40037
Returns: -1
25225
21687
Returns: -1
3306
7265
Returns: 15
33212
33470
Returns: -1
6384
32996
Returns: 16
34792
15987
Returns: -1
28562
41323
Returns: -1
40237
38775
Returns: -1
15504
21247
Returns: 16
20154
25762
Returns: 16
49270
13246
Returns: 16
2791
1482
Returns: 14
49993
49999
Returns: -1
756
888
Returns: 8
7282
995
Returns: 14