정점을 특별과 일반으로 나눈 그래프에서 특별-일반 간선을 정확히 w개 포함하는 최소 비용 신장 트리를 찾는다.
어려움8최소 신장 트리그래프정렬그리디아직 제출이 없습니다시간 제한2초메모리 제한512 MB어느 주가 아무도 손대지 않은 넓은 땅을 사들여 등산로가 있는 자연공원으로 만들려고 한다. 이 땅에는 방문객이 걸어가 보고 싶어 할 명소가 n곳 있고, 그중 k곳은 특별한 명소다. 주는 등산로를 놓아 이 명소들을 연결하려고 한다.
등산로 후보는 m개이다. 각 후보는 두 명소를 직접 연결하며 저마다 비용이 다르다. 등산로를 고를 때는 다음 조건을 지켜야 한다.
물론 주는 등산로를 놓는 총비용을 최소로 하고 싶다. 조건을 만족하는 최소 총비용을 구하라.
입력은 하나의 테스트 케이스로 이루어진다.
첫째 줄에 네 정수 n, m, k, w가 주어진다. n(2≤n≤2×105)은 명소의 수, m(1≤m≤5×105)은 명소 사이를 직접 잇는 등산로 후보의 수, k(1≤k<n)는 특별한 명소의 수, w(1≤w≤n−1)는 놓아야 하는 특별한 명소와 일반 명소 사이 등산로의 수이다. 명소에는 1부터 n까지 번호가 붙어 있다.
다음 k개 줄에는 특별한 명소의 번호 s(1≤s≤n)가 한 줄에 하나씩 주어진다. 이 값은 모두 서로 다르며 오름차순으로 주어진다.
다음 m개 줄에는 주가 놓을 수 있는 등산로 후보가 주어진다. 각 줄은 세 정수 a, b, c로 이루어지며, 명소 a와 b를 잇는 등산로의 비용이 c라는 뜻이다(1≤a,b≤n, a=b, 1≤c≤105). 두 명소 사이의 후보는 많아야 하나이고, a에서 b로 가는 등산로와 b에서 a로 가는 등산로는 같다.
조건을 만족하도록 등산로를 놓을 때의 최소 총비용을 정수 하나로 출력한다. 조건을 만족하는 방법이 없으면 −1을 출력한다.