Problem Statement
A lame knight is located at the bottom-left corner of a height x width chessboard. Unlike a healthy knight, a lame knight can only make moves where he goes to the right. The only possible moves are:
- 2 cells up, 1 cell right;
- 1 cell up, 2 cells right;
- 1 cell down, 2 cells right;
- 2 cells down, 1 cell right.
Definition
- Class:
- LameKnight
- Method:
- maxCells
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int maxCells(int height, int width)
- (be sure your method is public)
Constraints
- height will be between 1 and 2,000,000,000, inclusive.
- width will be between 1 and 2,000,000,000, inclusive.
Examples
100
50
Returns: 48
1 move of kind 2, 1 move of kind 3, 23 moves of kind 1 and 22 moves of kind 4.
1
1
Returns: 1
There are no possible moves here, so the only visited cell is the starting cell.
17
5
Returns: 4
It's possible to visit 5 cells (making 4 moves of kind 1 for example), but it's impossible to make it by 4 different moves. So, the best strategy here is to make 3 moves (thus visiting 4 cells).
3
2000000000
Returns: 1999999998
2000000000
2000000000
Returns: 1999999998
2
1999999999
Returns: 4
2
2000000000
Returns: 4
1
2000000000
Returns: 1
2
1
Returns: 1
2
2
Returns: 1
2
3
Returns: 2
2
4
Returns: 2
2
5
Returns: 3
2
6
Returns: 3
2
7
Returns: 4
2
8
Returns: 4
2
9
Returns: 4
2
10
Returns: 4
3
1
Returns: 1
3
2
Returns: 2
3
3
Returns: 3
3
4
Returns: 4
3
5
Returns: 4
3
6
Returns: 4
3
7
Returns: 5
3
8
Returns: 6
3
9
Returns: 7
3
10
Returns: 8
4
10
Returns: 8
3
199923
Returns: 199921
2
12493
Returns: 4
2
1999969992
Returns: 4
3
1997999991
Returns: 1997999989
20
4
Returns: 4
4 cells can be visited using 2 moves of kind 1 and 1 move of kind 4.
2
100
Returns: 4
200000000
200000000
Returns: 199999998
2
10000000
Returns: 4
2
200
Returns: 4
2
1000
Returns: 4
2
11111110
Returns: 4
1
10
Returns: 1
2
11
Returns: 4
5
1000
Returns: 998
2
2222
Returns: 4
200
200
Returns: 198
6
2
Returns: 2
7
2
Returns: 2
5
2
Returns: 2
1
100
Returns: 1
1
5
Returns: 1
1
8
Returns: 1
1
80
Returns: 1
20
6
Returns: 4
2
100000
Returns: 4
3
50
Returns: 48
1
11
Returns: 1
2
50
Returns: 4
100
6
Returns: 4
100
2
Returns: 2
1
2222
Returns: 1
1000
2
Returns: 2
8
6
Returns: 4
2
10000
Returns: 4
2
17
Returns: 4
1
100000
Returns: 1
2
500000
Returns: 4
1999999999
2
Returns: 2
10
2
Returns: 2
1
200
Returns: 1
2
20
Returns: 4
1
10000
Returns: 1
1
1000
Returns: 1
7
6
Returns: 4
3
1000
Returns: 998
2000000000
1999999999
Returns: 1999999997
2
30
Returns: 4
234234
123135
Returns: 123133
2
6666666
Returns: 4
6
1
Returns: 1
1
10000000
Returns: 1
500000234
637836587
Returns: 637836585
10
1
Returns: 1
100
1
Returns: 1
20000000
20000000
Returns: 19999998
1
20000
Returns: 1
3
100
Returns: 98
1
1000000
Returns: 1
2
15
Returns: 4
2
19999
Returns: 4
200
2
Returns: 2
1
49
Returns: 1
1
7
Returns: 1
3
100000
Returns: 99998
60
4
Returns: 4
1
2
Returns: 1
1000000000
1000000000
Returns: 999999998
2
1000000
Returns: 4
1
50
Returns: 1
6
30
Returns: 28
10
100
Returns: 98
4
3
Returns: 3
1000
7
Returns: 5
3
321
Returns: 319
1
6
Returns: 1
100
2000000000
Returns: 1999999998
3
2000000
Returns: 1999998
2000000
1
Returns: 1
100
3
Returns: 3
100
7
Returns: 5
120
90
Returns: 88
3
60
Returns: 58