브론즈 소 파티
면접 대비시간 제한1초메모리 제한128 MB
연결된 가중 무방향 그래프에서 고정된 목장 X로부터 가장 먼 최단 거리의 두 배를 구한다. 이는 소가 왕복하는 가장 긴 시간이다.
문제
개의 농장이 있고, 농장에는 번부터 번까지 번호가 매겨져 있다(). 각 농장에서 소 한 마리씩이 농장 번()에서 열리는 큰 소 파티에 참석한다. 농장들은 개의 양방향 도로로 연결되어 있으며(), 어떤 두 농장 사이도 도로를 따라 항상 오갈 수 있다. 번 도로를 지나는 데는 ()만큼의 시간이 든다. 두 농장이 두 개 이상의 도로로 직접 연결되어 있을 수도 있다.
모든 소가 농장 번에 모인 뒤, 저마다 파티 선물을 자기 농장에 두고 왔다는 것을 깨달았다. 소들은 파티를 잠시 중단하고 각자 자기 농장으로 돌아가 선물을 챙긴 뒤 다시 농장 번으로 돌아오기로 했다. 모든 소는 자기 농장까지 갔다가 돌아오는 가장 빠른 경로로 이동한다. 파티는 마지막 소가 돌아올 때까지 중단되므로, 중단 시간은 모든 소의 왕복 시간 중 가장 큰 값과 같다. 이 최소 중단 시간은 얼마인가?
입력
첫째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다.
다음 개의 줄 중 번째 줄에는 번 도로를 나타내는 세 정수 , , 가 공백으로 구분되어 주어진다. 이 도로는 농장 번과 농장 번을 연결하며, 지나는 데 만큼의 시간이 든다.
출력
파티를 중단해야 하는 최소 시간을 정수 하나로 출력한다.
힌트
도로가 양방향이므로, 한 소가 농장 번까지 갔다 오는 왕복 시간은 그 소의 농장과 농장 번 사이 최단 거리의 정확히 두 배이다. 따라서 농장 번에서 모든 농장까지의 최단 거리를 한 번의 최단 경로 탐색으로 구한 뒤, 그중 가장 큰 값을 두 배 하면 된다.