두 단계 최단 경로 2
면접 대비시간 제한1초메모리 제한512 MB
가중치가 있는 무방향 그래프에서 주어진 P개의 중간 정점 중 적어도 하나를 지나 X에서 Z로 가는 최단 거리를 구한다.
문제
서준이는 아빠에게 생일 선물로 세계 지도를 받아서 매우 기뻤다. 세계 지도에서 최단 경로를 찾는 프로그램을 만들어 아빠에게 고마운 마음을 전하려고 한다. 세계 지도는 도시를 정점으로, 도시 사이의 도로를 간선으로 갖는 무방향 그래프이고, 도로의 길이가 간선의 가중치이다. 출발 정점 에서 출발해 개의 중간 정점 가운데 적어도 한 개를 반드시 거친 뒤 도착 정점 에 도달하는 최단 거리를 구하자.
입력
첫째 줄에 정점의 수 ()과 간선의 수 ()이 주어진다.
다음 개 줄에 간선 정보 u v w가 주어지며, 도시 와 도시 사이에 가중치가 정수 인 양방향 도로가 있음을 나타낸다. (, , )
다음 줄에 X Z가 주어진다. (, )
다음 줄에 가 주어진다. ()
다음 줄에 개의 서로 다른 중간 정점 (, )가 빈칸을 사이에 두고 주어진다.
출력
출발 정점 에서 출발해 개의 중간 정점 가운데 적어도 한 개를 반드시 거친 뒤 도착 정점 에 도달하는 최단 거리를 출력한다. 도착 정점 에 도달할 수 없으면 -1을 출력한다.