Problem Statement
There is a binary tree with N vertices, numbered 1 through N. For each x from 2 to N, there is an edge between vertex x and vertex x/2 (rounded down). For example, this is what the tree looks like for N = 6:
1 ___/ \___ / \ 2 3 / \ / / \ / 4 5 6
The distance between two vertices is defined as the number of edges on the unique simple path between them. Given some vertex V, your task is to find the maximum distance between V and some other vertex.
Definition
- Class:
- BinaryDistance
- Method:
- maxDist
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int maxDist(int N, int V)
- (be sure your method is public)
Constraints
- N will be between 2 and 10^9, inclusive.
- V will be between 1 and N, inclusive.
Examples
6
2
Returns: 3
In the tree with N = 6 vertices, the farthest we can get from vertex 2 is vertex 6 and the distance is 3.
6
6
Returns: 4
In the tree with N = 6 vertices, the farthest we can get from vertex 6 is vertex 4 (or vertex 5) and the distance is 4.
5
4
Returns: 3
2
2
Returns: 1
1000000000
1
Returns: 29
20
7
Returns: 6
12
4
Returns: 5
2
1
Returns: 1
2
2
Returns: 1
3
1
Returns: 1
3
2
Returns: 2
3
3
Returns: 2
4
1
Returns: 2
4
2
Returns: 2
4
3
Returns: 3
4
4
Returns: 3
5
1
Returns: 2
5
2
Returns: 2
5
3
Returns: 3
5
4
Returns: 3
5
5
Returns: 3
6
1
Returns: 2
6
3
Returns: 3
6
4
Returns: 4
6
5
Returns: 4
6
6
Returns: 4
7
1
Returns: 2
7
2
Returns: 3
7
3
Returns: 3
7
4
Returns: 4
7
5
Returns: 4
7
6
Returns: 4
7
7
Returns: 4
8
1
Returns: 3
8
2
Returns: 3
8
3
Returns: 4
8
4
Returns: 4
8
5
Returns: 4
8
6
Returns: 5
8
7
Returns: 5
8
8
Returns: 5
28
19
Returns: 8
50
45
Returns: 10
42
21
Returns: 8
39
39
Returns: 9
33
16
Returns: 8
39
19
Returns: 8
30
24
Returns: 8
29
29
Returns: 8
14
8
Returns: 6
24
9
Returns: 7
185
179
Returns: 13
974
391
Returns: 17
839
783
Returns: 18
948
852
Returns: 18
180
16
Returns: 10
647043724
274782219
Returns: 56
871069689
527261577
Returns: 57
403272055
222559640
Returns: 55
908823243
329278497
Returns: 57
944675799
132908325
Returns: 55
861768453
380092536
Returns: 57
912883806
394569988
Returns: 57
461605628
304044119
Returns: 56
486120389
395099087
Returns: 56
321641978
265309197
Returns: 55
536870911
1
Returns: 28
536870911
2
Returns: 29
536870911
3
Returns: 29
536870911
4
Returns: 30
536870911
5
Returns: 30
536870911
6
Returns: 30
536870911
536870910
Returns: 56
536870911
536870911
Returns: 56
536870911
135691656
Returns: 55
536870911
247806061
Returns: 55
536870911
349502163
Returns: 56
536870912
1
Returns: 29
536870912
2
Returns: 29
536870912
3
Returns: 30
536870912
4
Returns: 30
536870912
5
Returns: 30
536870912
6
Returns: 31
536870912
536870911
Returns: 57
536870912
536870912
Returns: 57
536870912
42244722
Returns: 53
536870912
41647635
Returns: 53
536870912
264919016
Returns: 56
805306367
1
Returns: 29
805306367
2
Returns: 29
805306367
3
Returns: 30
805306367
4
Returns: 30
805306367
5
Returns: 30
805306367
6
Returns: 31
805306367
805306366
Returns: 57
805306367
805306367
Returns: 57
805306367
747767800
Returns: 57
805306367
253931627
Returns: 56
805306367
610781806
Returns: 57
805306368
1
Returns: 29
805306368
2
Returns: 30
805306368
3
Returns: 30
805306368
4
Returns: 31
805306368
5
Returns: 31
805306368
6
Returns: 31
805306368
805306367
Returns: 58
805306368
805306368
Returns: 58
805306368
679509804
Returns: 58
805306368
395132901
Returns: 57
805306368
491585735
Returns: 57
1000000000
1
Returns: 29
1000000000
2
Returns: 30
1000000000
3
Returns: 30
1000000000
4
Returns: 31
1000000000
5
Returns: 31
1000000000
6
Returns: 31
1000000000
999999999
Returns: 58
1000000000
1000000000
Returns: 58
1000000000
208032501
Returns: 56
1000000000
346948152
Returns: 57
1000000000
973708325
Returns: 58
16777215
3
Returns: 24
16777216
3
Returns: 25
25165823
2
Returns: 24
25165824
2
Returns: 25
33554431
3
Returns: 25
33554432
3
Returns: 26
50331647
2
Returns: 25
50331648
2
Returns: 26
67108863
3
Returns: 26
67108864
3
Returns: 27
100663295
2
Returns: 26
100663296
2
Returns: 27
134217727
3
Returns: 27
134217728
3
Returns: 28
201326591
2
Returns: 27
201326592
2
Returns: 28
268435455
3
Returns: 28
268435456
3
Returns: 29
402653183
2
Returns: 28
402653184
2
Returns: 29
1000000000
4194304
Returns: 51
20
20
Returns: 7
20
16
Returns: 7
11
2
Returns: 3
1000000000
1000000
Returns: 48
89999999
1234
Returns: 35
100
28
Returns: 10
10
10
Returns: 5
32
5
Returns: 6
9
6
Returns: 5
35
1
Returns: 5