Problem Statement
- The current player choses a number X between 1 and m, inclusive. X cannot exceed the current number of stones in the pile.
- The current player removes X stones from the pile.
- If the pile is now empty, the current player wins the game.
- The current player counts the remaining stones in the pile, and writes that count in binary. If that number contains an odd number of ones, the current player loses the game.
Definition
- Class:
- ThueMorseGame
- Method:
- get
- Parameters:
- int, int
- Returns:
- String
- Method signature:
- String get(int n, int m)
- (be sure your method is public)
Constraints
- n will be between 1 and 500,000,000, inclusive.
- m will be between 1 and 50, inclusive.
- n will have an even number of ones in binary.
Examples
100000000
47
Returns: "Alice"
3
1
Returns: "Bob"
99999957
50
Returns: "Alice"
99999988
49
Returns: "Bob"
99999974
48
Returns: "Bob"
167959139
2
Returns: "Bob"
141009859
46
Returns: "Alice"
423264237
41
Returns: "Alice"
202209411
31
Returns: "Alice"
85325539
21
Returns: "Alice"
58376259
20
Returns: "Alice"
72235422
48
Returns: "Alice"
43705451
13
Returns: "Bob"
496511007
50
Returns: "Alice"
495527937
50
Returns: "Alice"
499540828
50
Returns: "Alice"
499953832
50
Returns: "Alice"
499996436
50
Returns: "Alice"
499999999
2
Returns: "Bob"
499999999
3
Returns: "Bob"
499999999
4
Returns: "Bob"
499999999
5
Returns: "Bob"
499999979
26
Returns: "Bob"
499999987
39
Returns: "Bob"
499999963
41
Returns: "Bob"
499999999
44
Returns: "Bob"
499999975
49
Returns: "Bob"
499999951
50
Returns: "Bob"
3
1
Returns: "Bob"
499999999
1
Returns: "Bob"
18
39
Returns: "Alice"
75
26
Returns: "Alice"
359
46
Returns: "Alice"
237
41
Returns: "Alice"
411
31
Returns: "Alice"
39
21
Returns: "Alice"
270
48
Returns: "Alice"
449
25
Returns: "Alice"
311
24
Returns: "Alice"
3
3
Returns: "Alice"
Here Alice can take three stones from the heap and win.
3
2
Returns: "Bob"
If Alice can take one or two stones. Either case, remaining number of stones will contain an odd number of ones in binary.
387
22
Returns: "Alice"
499999999
50
Returns: "Alice"
499999975
49
Returns: "Bob"
400000000
47
Returns: "Alice"
5
1
Returns: "Bob"
402653184
3
Returns: "Alice"
6
2
Returns: "Bob"
57
50
Returns: "Alice"
499999975
50
Returns: "Alice"
6
1
Returns: "Alice"
9
6
Returns: "Bob"
450000000
1
Returns: "Alice"
6
3
Returns: "Alice"
51
50
Returns: "Bob"
54
10
Returns: "Alice"
20
1
Returns: "Bob"
9010
50
Returns: "Bob"
30
20
Returns: "Alice"