Samsung R&D Institute Interview Question


Mr. X has to deliver software to N customers. From the office, he is going to visit all the customers and then return to his office. Each location of the office and the customers is given in the form of integer coordinates (x, y) (-1<x<500, -1<y<500). The distance between two arbitrary locations (x1, y1) and (x2, y2) is computed by |x1-x2| + |y1-y2|, where |x| denotes the absolute value of x; for instance, |3|=|-3|=3. The locations of the office and the customers are all distinct. You should plan an optimal way to visit all the N customers and return to his office.

You are given the locations of the office and the customers; the number of customers is in the range of 1 to 100. Write a program that, starting at the office, finds a (the) shortest path visiting all the customers and returning to his office. Your program only has to report the distance of a (the) shortest path.

[Constraints]
1<N<100. Each location (x, y) is in a bounded grid, -1<x<500, -1<y<500, and x, y are integers.



[Input]
Each test case consists of two lines; the first line has N, the number of the customers and the following line enumerates the locations of the office and the customers in sequence. Each location consists of the coordinates (x, y), which is represented by ‘x y’.

[Output]
Each line outputs the distance of a (the) shortest path. Each line looks like ‘#x answer’ where x is the index of a test case. ‘#x’ and ‘answer’ are separated by a space.

Examples:

Input : 
In the first test case, the locations of the office are (0, 0) and the locations of the customers are (70, 40), 
(30, 10), (10, 5), (90, 70), (50, 20).

5 (Starting test case #1)
0 0 70 40 30 10 10 5 90 70 50 20
Output :
#1 320

   


Write your Interview Experience or mail it to contribute@geeksforgeeks.org



My Personal Notes arrow_drop_up

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. 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.




Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.