숲 연결하기
시간 제한2초메모리 제한256 MB
가중치가 있는 포레스트가 주어질 때, 각 정점을 최대 한 번만 사용하는 서로 다른 정점 쌍을 추가해 그래프를 연결되게 만들고, 쌍의 값 합의 최솟값을 구하거나 불가능하면 Impossible을 출력한다.
문제
개의 정점과 개의 간선으로 이루어진 숲이 주어진다. 정점은 부터 까지 번호가 매겨져 있다. 간선은 형태로 주어지며, 정점 와 가 간선으로 연결되어 있다는 뜻이다.
각 정점 에는 값 가 부여되어 있다. 주어진 숲에 간선을 추가하여 하나의 연결된 그래프로 만들려고 한다. 간선을 추가하려면 서로 다른 두 정점 와 를 골라 와 사이에 간선을 놓는다. 이 연산의 비용은 달러이고, 연산 후에는 정점 와 를 다시 선택할 수 없다.
숲을 연결된 그래프로 만드는 데 필요한 최소 총비용을 구하라. 불가능하면 "Impossible"을 출력하라.
입력
입력은 다음 형식으로 주어진다.
출력
숲을 연결된 그래프로 만드는 데 필요한 최소 총비용을 출력하라. 불가능하면 "Impossible"을 출력하라.
제한
, , , . 주어진 그래프는 숲이다. 모든 입력값은 정수이다.
힌트
예제 1에서 정점 과 를 연결하면 그래프가 연결되고, 비용은 이다.
예제 2에서는 그래프를 연결할 수 없다.
예제 3에서는 아무것도 하지 않아도 그래프가 연결되어 있다.