Phonomenal Reviews

트리에서 표시된 M개의 정점을 모두 방문하는 데 필요한 최소 이동 거리를 시작 위치를 자유롭게 정해 구한다.

보통6트리DFS그래프그리디면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

조는 음식점 비평을 전문으로 하는 블로거다. 오늘은 워털루 지역에 있는 베트남 쌀국수 가게를 모두 돌아보고 어느 집이 가장 좋은지 판단하려고 한다.

워털루에는 음식점이 NN개 있고 00번부터 N1N-1번까지 번호가 붙어 있다. 그중 MM개만 쌀국수 가게다. 조는 어느 음식점에서 출발해도 된다. 워털루의 도로는 N1N-1개이고 각 도로는 음식점 두 곳을 잇는다. 이 도로만 이용해서 어느 음식점에서든 다른 어느 음식점으로든 갈 수 있다. 도로 하나를 지나는 데 걸리는 시간은 정확히 1분이다.

컴퓨터 과학에서는 이런 구조의 도로망을 트리라고 부른다. 트리의 예 세 가지는 다음과 같다.

모든 트리에는 다음 성질이 있다. 두 지점 사이에 같은 도로를 두 번 지나지 않는 경로가 정확히 하나 있다.

조가 쌀국수 가게를 모두 방문하려면 도로를 이동하는 데 최소 몇 분을 써야 하는가?

입력

첫째 줄에 정수 NNMM이 주어진다 (2MN1000002 \le M \le N \le 100000).

둘째 줄에 쌀국수 가게의 번호를 나타내는 서로 다른 정수 MM개가 주어진다.

이어지는 N1N-1개 줄에는 정수가 두 개씩 주어진다. ii번째 줄의 aia_ibib_i (0ai,biN10 \le a_i, b_i \le N-1)는 음식점 aia_i와 음식점 bib_i를 잇는 도로를 뜻한다.

출력

한 줄에 정수 하나를 출력한다. 조가 쌀국수 가게를 모두 방문하기 위해 도로를 이동하는 데 써야 하는 최소 시간을 분 단위로 출력한다.