Given the Manhattan distances of three coordinates on a 2-D plane, the task is to find the original coordinates. Print any solution if multiple solutions are possible else print -1.
Input: d1 = 3, d2 = 4, d3 = 5
Output: (0, 0), (3, 0) and (1, 3)
Manhattan distance between (0, 0) to (3, 0) is 3,
(3, 0) to (1, 3) is 5 and (0, 0) to (1, 3) is 4
Input: d1 = 5, d2 = 10, d3 = 12
Approach: Let’s analyze when no solution exists. First the triangle inequality must hold true i.e. the largest distance should not exceed the sum of other two. Second, sum of all Manhattan distances should be even.
Here’s why, if we have three points and their x-coordinates are x1, x2 and x3 such that x1 < x2 < x3. They will contribute to the sum (x2 – x1) + (x3 – x1) + (x3 – x2) = 2 * (x3 – x1). Same logic applied for y-coordinates.
In all the other cases, we have a solution. Let d1, d2 and d3 be the given Manhattan distances. Fix two points as (0, 0) and (d1, 0). Now since two points are fixed, we can easily find the third point as x3 = (d1 + d2 – d3) / 2 and y3 = (d2 – x3).
Below is the implementation of the above approach:
(0, 0), (3, 0) and (1, 3)
- Find a point such that sum of the Manhattan distances is minimized
- Sum of Manhattan distances between all pairs of points
- Find all possible coordinates of parallelogram
- Find the other-end coordinates of diameter in a circle
- Find the distance covered to collect items at equal distances
- Find minimum area of rectangle with given set of coordinates
- Find whether only two parallel lines contain all coordinates points or not
- Find coordinates of the triangle given midpoint of each side
- Find the original matrix when largest element in a row and a column are given
- Find coordinates of a prime number in a Prime Spiral
- Pairs with same Manhattan and Euclidean distance
- Maximum integral co-ordinates with non-integer distances
- Coordinates of rectangle with given points lie inside
- Minimum length of square to contain at least half of the given Coordinates
- Count paths with distance equal to Manhattan distance
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.