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