둠스데이
시간 제한5초메모리 제한1024 MB
가중 무방향 그래프에서 기지 0과 물, 식량 창고 위치들이 주어질 때, 각 종류의 창고를 하나씩 들르고 기지로 돌아오는 최소 시간을 구한다.
문제
종말이 코앞이다! 적어도 네 형은 그렇게 말하고 있다. 대비책으로 형은 산악 지대 깊숙한 곳에 잘 숨겨진 식량 창고와 물 창고로 이루어진 정교한 네트워크를 만들어 두었다. 너는 기지에 있는데 경보가 울린다. 식량과 물을 모두 얼마나 빨리 가져올 수 있을까?
입력
첫째 줄에 네 정수 , , , 가 주어진다. 은 숨겨진 장소의 수, 은 네트워크의 길의 수, 은 물 창고의 총 개수, 은 식량 창고의 총 개수이다. 네 기지는 장소 에 있다. 둘째 줄에 개의 정수 가 공백으로 구분되어 주어지며, 물 창고의 위치를 나타낸다. 각 위치는 서로 다르다 (). 셋째 줄에 개의 정수 가 공백으로 구분되어 주어지며, 식량 창고의 위치를 나타낸다. 각 위치는 서로 다르다 ().
다음 개의 줄에 네트워크의 길이 하나씩 주어진다. 길은 양방향이다. 번째 줄에 세 정수 , , 가 공백으로 구분되어 주어지며, 장소 와 사이에 이동하는 데 시간이 걸리는 길이 있음을 나타낸다 (, ).
출력
식량과 물을 모두 가져와 기지로 되돌아오는 데 필요한 최소 시간을 한 정수로 출력한다.