//sj 가 아직.. [문제요약] 두더지는 단정하고 부지런한 동물이다. 우리 두더지는 최대한 땅속 깊이 들어가는 장소를 좋아한다. 그래서 거기에 있는 모든 이들은 어디서 찾아야 하는지 안다.
이를 하기 위해서 두더지는 터널로 뚫은 방들을 유일한 하나의 길로 연결해 놓는다. 두 방 사이의 거리는 가는 길 상의 홀의 수이다.
모든 이런 노력에도 불구하고 , 두더지의 모든 손님들은 불평한다. 어떤 방 사이를 갈 때 너무 멀다고.
그래서 두더지는 그의 주거 공간을 다시 짓지로 결심했다. 어떤 터널을 닫고 새로운 것을 열고 , 가장 먼 두개의 방을 가능한 가깝게 그러나 어떤 방에서도 다른 방으로 갈수 있게
가장 먼 두 개의 방의 거리를 구하는 프로그램을 작성하는 것이 문제이다.
To achieve this, the mole connected rooms with tunnels so that there is a single unique way to get from one room to any other room. The distance between two rooms is the number of halls passed on the way from one to the other.
Despite all the effort, some of the mole's guests are complaining that it takes too long to walk between certain pairs of rooms.
The mole decided to reconstruct her residence, closing one tunnel and opening a new one, so that the distance between the farthest two rooms is the smallest possible, but so that it is still possible to reach every room from every other room.
Write a program which determines the distance between the farthest two rooms after reconstruction, which tunnel to close and which to open.
input 4 1 2 2 3 3 4 output 2 3 4 4 2 input 7 1 3 2 3 2 7 4 3 7 5 3 6 output 3 2 3 7 3
출처:coci COCI 2008/2009 contest1 6/6