테마파크
시간 제한2초메모리 제한1024 MB
1번 구역을 뿌리로 하는 트리에서 모든 유료 구역에 무료로 도달하도록 길에 행사를 열어 최소 비용을 구한다.
문제
민찬이는 테마파크를 개장했다. 이 테마파크는 각기 다른 테마들로 구성된 개의 구역과 서로 다른 두 구역을 양방향으로 잇는 개의 길로 이루어져 있다. 번 길은 번 구역과 번 구역을 양방향으로 이으며, 임의의 구역에서 다른 구역으로 가는 경로가 항상 존재한다.
이 테마파크의 구역 개 중 개는 유료로 운영된다. 유료로 운영되는 구역을 거쳐 가거나 그 구역에 입장하려면 티켓 하나를 사용해야 하며, 한번 사용한 티켓을 다시 사용할 수는 없다. 단, 번 구역은 항상 무료로 운영된다.
민찬이는 개장을 기념해서 KSA 학생을 한 구역당 한 명씩 총 명 초대할 계획이다. 이때, 번 구역에 초대된 학생은 입구가 있는 번 구역부터 번 구역까지 길을 가장 적게 지나는 경로를 따라 걸어갈 것이다.
또, KSA 학생들이 돈을 내야 하는 상황을 막기 위해 민찬이는 개 이상의 길 중간에 무료 티켓 행사를 열어 그 길을 지나는 학생들에게 티켓을 하나씩 무료로 나눠주려고 한다. 이때, 번 길에 행사를 열기 위해서는 비용이 만큼 들고, 통행을 원활하게 하기 위해 하나의 길에는 최대 하나의 행사만 열어야 한다. KSA 학생이 모두 자신이 초대된 구역까지 무료로 갈 수 있도록 행사를 여는 최소 비용과 그 방법을 구해보자.
입력
첫 번째 줄에 두 정수 , 이 공백으로 구분되어 주어진다.
두 번째 줄에 유료로 운영되는 구역의 번호를 나타내는 개의 정수 이 공백으로 구분되어 주어진다.
번째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 모든 KSA 학생들이 자신이 초대된 구역까지 무료로 갈 수 있도록 행사를 여는 최소 비용을 출력한다.
두 번째 줄에 행사를 열 길의 개수 를 출력한다.
세 번째 줄에 행사를 열 길의 번호를 나타내는 정수 를 공백으로 구분하여 출력한다.
정답이 여러 개 존재한다면 그중 아무거나 출력해도 상관없다.
제한
- 인 모든 , 에 대해서 번 구역과 번 구역을 연결하는 경로가 존재