Problem Statement
Cat Snuke knows that exactly K consecutive boxes contain balls. Formally, there exists some i (0 <= i <= N-K) such that the boxes i, i+1, ..., i+K-1 contain balls while all others are empty.
He wants to determine which boxes contain balls. In each turn, he can choose a box, open it and check whether the box contains a ball or not. Note that the result of each turn may affect his future decisions about which boxes to open in the next turns.
How many turns are required to determine the positions of the balls in the worst case, assuming that Snuke uses the optimal strategy?
Definition
- Class:
- BallsInBoxes
- Method:
- maxTurns
- Parameters:
- long, long
- Returns:
- long
- Method signature:
- long maxTurns(long N, long K)
- (be sure your method is public)
Constraints
- N will be between 1 and 10^18, inclusive.
- K will be between 1 and N, inculsive.
Examples
10
10
Returns: 0
Snuke knows that all boxes contain balls, so he doesn't need to open any boxes.
100
1
Returns: 99
In the worst case, if he opens 98 boxes and none of them contains the only ball, he can't determine which box contains the ball.
1000
999
Returns: 1
There are two possibilities: Boxes 0, 1, ..., 998 contain balls. Boxes 1, 2, ..., 999 contain balls. He can determine the positions of the balls if he opens box 0.
1000000000000000000
1
Returns: 999999999999999999
1000000000000000000
1000000000000000000
Returns: 0
1000000000000000000
12345
Returns: 81004455245051
10
5
Returns: 3
1
1
Returns: 0
5027655433553
2671676608
Returns: 1912
630805811860343
241744492147883
Returns: 49
126628324358
40
Returns: 3165708113
168029527
26
Returns: 6462677
82232
954
Returns: 95
2325
27
Returns: 89
2207214334724016
893478067082335
Returns: 51
732788420489844992
1209332270
Returns: 605944680
6454676219505748
5123
Returns: 1259940702628
678913968068243
14878534762064
Returns: 88
14851331
89
Returns: 166874
7942128729133600
1910975230
Returns: 4156090
198794
99
Returns: 2013
1022567
12
Returns: 85216
6259879625284627
34052
Returns: 183832950363
163730420801634400
18508386157
Returns: 8846316
136809932934078560
192796
Returns: 709609810044
748263060606834432
1877384457
Returns: 398566800
30652807934750
3
Returns: 10217602644917
194470855179348096
28155622907582572
Returns: 60
1653921024699
11
Returns: 150356456793
147561379281945760
20
Returns: 7378068964097291
682683423959
32797840536
Returns: 54
843853
14
Returns: 60278
2810758689722
1
Returns: 2810758689721
843104905118044672
3905966660197
Returns: 215891
2101269805956626
111
Returns: 18930358612227
179099816959864
161663381
Returns: 1107882
3759051900717881
2572685211045
Returns: 1501
1595
116
Returns: 19
2189892418268766
9
Returns: 243321379807642
596929637353063
863532998
Returns: 691293
510628381635
503718512
Returns: 1041
2672451067
515343843
Returns: 33
2564086381269720
187217435
Returns: 13695793
1151004
1945
Returns: 601
226833200240
19709544
Returns: 11532
1084
116
Returns: 15
43740974459227264
340209944423007
Returns: 175
64236048894092792
2
Returns: 32118024447046396
17057602277
2
Returns: 8528801138
402050
67946
Returns: 20
382293665
26159
Returns: 14627
32
22
Returns: 4
8613744388
126
Returns: 68363056
236287986758
112486953
Returns: 2126
100
1
Returns: 99
253961593837797472
8185238870791
Returns: 31068
1948251853121
2184285
Returns: 891960
15326817705
7122635533
Returns: 33
999999999999999997
37951
Returns: 26349766804578
944115188075855871
100000000000000000
Returns: 64
999999999999999999
3324
Returns: 300842358604102
1000000000000000000
1234567899
Returns: 810000030
1000000000000
5000000
Returns: 200021
11
5
Returns: 3
11000000
10
Returns: 1100002
10
6
Returns: 3
999999999999999487
97845321377
Returns: 10220248
1000000000000000000
4221
Returns: 236910684671889
929332873854123812
19283965
Returns: 48192001712
60006000600060006
5445344
Returns: 11019689613
139
40
Returns: 7
38482906000000
1099511627776
Returns: 73
7
3
Returns: 3
10
3
Returns: 4
16
5
Returns: 4
1000000000000
17
Returns: 58823529414
11
3
Returns: 4
2048
1024
Returns: 11
12
5
Returns: 3
1000000000000000000
500000000000000000
Returns: 59
11
4
Returns: 3
10000000000
2
Returns: 5000000000
4
2
Returns: 2
929332873854123812
3726717257482912
Returns: 300
10
2
Returns: 5
65
21
Returns: 6
9
2
Returns: 4
14
6
Returns: 4
781624781647614
7634
Returns: 102387317492
80
7
Returns: 13
5
3
Returns: 2
384829060000000
10995116277760
Returns: 77
123456
456
Returns: 278
8
2
Returns: 4
100000000000000
43651
Returns: 2290898275
14
5
Returns: 4
1000
5
Returns: 201
9
3
Returns: 3
1000000000000000000
999999999999999999
Returns: 1
1000000000000000000
576460752303423488
Returns: 59
3
2
Returns: 1
13251234
23
Returns: 576144
6
2
Returns: 3
1000000000000000000
50000000000
Returns: 20000034
5
2
Returns: 2
900000004294967296
3000000000
Returns: 300000032
21
10
Returns: 4
553869300062833912
64637801098948976
Returns: 63
1234567898765
658167578
Returns: 1904
20
11
Returns: 4
48
12
Returns: 6
12938512
324
Returns: 39941
42
30
Returns: 4
391749387
4890851
Returns: 101
377
74
Returns: 10
1859
51
Returns: 41