Problem Statement
Recently you have been working on the pathfinding module for your AI system. Your objective is to find the shortest path for an agent that wants to travel between two points on a plane. The agent will start at the point (0,0), and travel to the point (x,y). You decided that the agent will move either on horizontal of vertical lines such that, at every moment, at least one coordinate of the agent is an integer.
There is yet another restriction however. Each line will only allow movement in one direction. All horizontal lines with odd y-coordinates will be directed toward decreasing values of x, and all other horizontal lines toward increasing values of x. Similarly, all vertical lines with odd x-coordinates will be directed toward decreasing values of y, and all other vertical lines toward increasing values of y.
Given x and y, return the distance that the agent must travel.
Definition
- Class:
- Pathfinding
- Method:
- getDirections
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int getDirections(int x, int y)
- (be sure your method is public)
Constraints
- x and y will both be between -10^6 and 10^6, inclusive.
Examples
0
-4
Returns: 8
A possible path from (0,0) to (0,-4) is through the points (1,0), (1,-3), (-1,-3) and (-1,-4).
5
-4
Returns: 9
5
4
Returns: 9
-1
-4
Returns: 7
-100
-100
Returns: 204
0
6
Returns: 6
-5
4
Returns: 11
8
-9
Returns: 19
8
-6
Returns: 14
3
-4
Returns: 7
-4
-8
Returns: 16
1
2
Returns: 3
8
4
Returns: 12
7
-4
Returns: 11
-3
-9
Returns: 14
-69
-99
Returns: 170
-45
-17
Returns: 64
44
73
Returns: 117
-29
-1
Returns: 32
92
-57
Returns: 151
90
68
Returns: 158
-16
57
Returns: 73
-59
56
Returns: 117
-75
10
Returns: 87
29
78
Returns: 107
0
-932988
Returns: 932992
0
-192031
Returns: 192033
0
996617
Returns: 996617
0
565165
Returns: 565165
0
-68447
Returns: 68449
0
329397
Returns: 329397
0
87302
Returns: 87302
0
-226231
Returns: 226233
0
714659
Returns: 714659
0
408192
Returns: 408192
-822882
0
Returns: 822886
-918262
0
Returns: 918266
107779
0
Returns: 107779
64185
0
Returns: 64185
-970733
0
Returns: 970735
557748
0
Returns: 557748
240445
0
Returns: 240445
-974073
0
Returns: 974075
-211284
0
Returns: 211288
-365883
0
Returns: 365885
950352
-60019
Returns: 1010373
-725167
-26598
Returns: 751767
947387
167290
Returns: 1114677
-8349
-555143
Returns: 563494
45790
575420
Returns: 621210
-970177
-926113
Returns: 1896292
100990
-356385
Returns: 457377
905559
-579206
Returns: 1484765
211559
152290
Returns: 363849
778995
997648
Returns: 1776643
0
0
Returns: 0
-124121
14213
Returns: 138334
-121456
987612
Returns: 1109068
-36984
-120489
Returns: 157475
12341
534677
Returns: 547020
52351
-12397
Returns: 64748
-1
-1
Returns: 4
-4
0
Returns: 8
1
1
Returns: 4
-2
-2
Returns: 8
0
-3
Returns: 5
0
1
Returns: 1
0
-1
Returns: 3
-2
0
Returns: 6
-4
-4
Returns: 12
-50000
-60000
Returns: 110004
18
-905
Returns: 925
1000000
1000000
Returns: 2000000
-1000000
-999999
Returns: 2000001
2
-2
Returns: 4
-5
0
Returns: 7
-16
16
Returns: 32
2
-1
Returns: 5
0
-5
Returns: 7
0
-2
Returns: 6
-2
-4
Returns: 10
-1000000
-1000000
Returns: 2000004
-1
0
Returns: 3
5
5
Returns: 12
-3
0
Returns: 5
-10
0
Returns: 14
-3
4
Returns: 9
-3
1
Returns: 4
7
11
Returns: 20
-4
4
Returns: 8
-4
-6
Returns: 14
-2
2
Returns: 4
0
5
Returns: 5
1000000
999999
Returns: 1999999
3
3
Returns: 8
0
-100001
Returns: 100003
2
-9
Returns: 13
-300
296
Returns: 596
-999998
-999998
Returns: 2000000
0
3
Returns: 3
-10020
-14212
Returns: 24236
0
2
Returns: 2
2
-3
Returns: 7
1000000
-1000000
Returns: 2000000
-1
2
Returns: 5
-10
-42
Returns: 56
-3
5
Returns: 8
999999
-999998
Returns: 1999997
-99
0
Returns: 101
-2
3
Returns: 5
0
-15
Returns: 17
-999999
1000000
Returns: 2000001
-21201
12141
Returns: 33342
987654
986754
Returns: 1974408
-2
-1
Returns: 5
2
0
Returns: 2
10
-10
Returns: 20
-4
2
Returns: 6
-6
0
Returns: 10
101
99
Returns: 202
-10000
-100001
Returns: 110003
5
3
Returns: 10
3
1
Returns: 6
2
3
Returns: 5
-10012
20024
Returns: 30036
-1000000
1000000
Returns: 2000000
-5
6
Returns: 13
-99999
-9876
Returns: 109877
-999999
999999
Returns: 1999998
8
-1
Returns: 11
-600001
256845
Returns: 856846
3
-3
Returns: 6
-24
0
Returns: 28
0
90000
Returns: 90000
-9
-9
Returns: 20
2
-4
Returns: 6
102843
13243
Returns: 116088
-400
-400
Returns: 804
-12
0
Returns: 16
-999999
-989988
Returns: 1989989
-900000
-900000
Returns: 1800004