Problem O
Rocky Mountain Road Trip
Adeline and Byron are on a road trip through the mountains. Interestingly, the roads through the mountains can be modeled as a grid of size $ n \times m $, where each cell has an integer altitude. The grid follows standard Cartesian coordinates, with the top-left corner being $ (1,1) $ and the bottom-right corner being $ (n, m) $.
Adeline, an adrenaline junkie, loves the ups and downs of the mountains, while Byron gets motion sick easily. After some debate, they agreed on a compromise: they must find a route from their starting position $ (x_0, y_0) $ to their destination $ (x_f, y_f) $ that minimizes the total distance traveled, but to make it fun for Adeline, they must alternate between gaining and losing altitude with every move. If they take a longer path than necessary, Byron will get sick.
Adeline and Byron’s car can move in any of the 8 cardinal directions: North, Northeast, East, Southeast, South, Southwest, West, and Northwest. Each movement to an adjacent cell counts as a distance of 1, regardless of direction.
Help Adeline and Byron determine the minimum number of moves required to reach their destination.
Input
The first line contains two integers $ n $ and $ m $ $(1 \leq n, m \leq 500)$—the dimensions of the grid.
The next $ n $ lines each contain $ m $ integers $ h_{i,j} $ $(0 \leq h_{i,j} \leq 10^9)$, representing the altitude of each cell in the grid.
The next line contains four integers $ x_0, y_0, x_f, y_f $ $(1 \leq x_0, x_f \leq n, 1 \leq y_0, y_f \leq m)$—the starting and destination positions.
It is guaranteed that the starting and destination positions are distinct.
Output
Print a single integer—the minimum number of moves required to reach $ (x_f, y_f) $ from $ (x_0, y_0) $, or print $-1$ if it is impossible to reach the destination.
Sample Input 1 | Sample Output 1 |
---|---|
4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 1 4 5 |
9 |
Sample Input 2 | Sample Output 2 |
---|---|
1 4 1 2 3 1 1 1 1 4 |
-1 |
Sample Input 3 | Sample Output 3 |
---|---|
1 2 1 1 1 1 1 2 |
-1 |