아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

로드 트립

면접 대비

시간 제한1초메모리 제한128 MB

요약
도시 1을 루트로 하는 가중치 트리에서 루트가 아닌 정점 하나를 제거했을 때, 남은 모든 도시를 방문하고 1로 돌아오는 최단 왕복 거리를 구한다.
난이도

보통10점 중 5점

유형
트리, DFS, 그래프, 구현
정답자
아직 제출이 없습니다

문제

한 여행 밴드가 자기 주(state)의 모든 주요 도시에서 공연을 하고 출발했던 도시로 다시 돌아오려고 한다. 각 도시에서 공연장을 빌리는 비용을 따져 보니 예산이 빠듯해서, 정확히 한 도시는 건너뛰어야(그곳에서는 공연하지 않아야) 한다.

밴드는 사용할 도로를 이미 골라 두었는데, 고른 도로에는 사이클이 전혀 없으면서도 모든 도시를 연결한다. 즉, 고른 도로들은 하나의 트리를 이룬다. 각 도로는 양방향이며 몇 번이든 오갈 수 있다.

밴드는 항상 1번 도시에서 출발해 1번 도시로 돌아오므로 1번 도시는 절대 건너뛸 수 없다. 어떤 도시를 건너뛰면 그 도시와 그 도시에 닿는 도로들이 사라지며, 남은 도시들은 여전히 고른 도로만으로 모두 방문할 수 있어야 한다. 건너뛸 수 있는 도시들 중에서 왕복 이동 거리가 가장 짧아지는 도시 하나를 골라 건너뛴다.

이때 가능한 가장 짧은 왕복 이동 거리를 출력하라.

입력

첫째 줄에 데이터 세트의 개수 KK가 주어진다. 이어서 KK개의 데이터 세트가 아래 형식으로 주어진다.

각 데이터 세트의 첫째 줄에는 도시의 수 VV와 도로의 수 EE가 주어진다 (2≤V≤1002 \le V \le 100, 1≤E≤1001 \le E \le 100).

이어지는 EE개의 줄에는 각각 양방향 도로 하나가 세 정수 aia_i, bib_i, did_i로 주어진다. 이는 도시 aia_i와 도시 bib_i 사이에 길이가 did_i인 도로가 있다는 뜻이다 (1≤ai,bi≤V1 \le a_i, b_i \le V). 도로에는 사이클이 없으므로, 도로들은 모든 VV개의 도시를 연결하는 하나의 트리를 이룬다. 밴드는 항상 1번 도시에서 출발한다.

출력

각 데이터 세트마다 Data Set x: 형식의 줄을 출력한다. 여기서 xx는 데이터 세트의 번호이다(1부터 시작). 다음 줄에는 밴드가 가장 알맞은 도시 하나를 건너뛰고 나머지 모든 도시를 방문한 뒤 1번 도시로 돌아올 때의 최소 이동 거리를 출력한다. 각 데이터 세트를 출력한 뒤에는 빈 줄을 하나 출력한다.

예제1

  1. 예제 1

    입력
    1
    5 4
    1 2 3
    2 3 7
    3 4 3
    3 5 4
    
    예상 출력
    Data Set 1:
    26