금지된 회전
면접 대비시간 제한2초메모리 제한1024 MB
방향 그래프에서 금지된 회전 (x, y, z)를 연속으로 지나지 않고 v에서 w까지 가는 최단 거리를 구합니다.
문제
ICPC(International Control Perfection Company)는 교통망을 위한 자동차 내비게이션 시스템을 설계한다. 이 시스템은 교통망을 간선 비용 가 붙은 방향 그래프 로 나타낸다. 방향 간선 에 대해 는 장소 에서 장소 까지의 거리이다. 회사는 이 시스템에 들어갈 최단 경로 모듈을 구현하려고 한다. 교차로에서는 일부 방향으로 회전할 수 없으므로, 금지된 회전을 부분 경로로 포함하지 않는 최단 경로를 찾아야 한다.
에서 까지의 경로는 , 이고 에 대해 인 수열 이다. 일반적인 정의와 달리 경로에서 같은 정점을 반복해도 된다. 부분 경로는 경로의 연속된 부분 수열이다. 금지된 회전은 이고 인 세 쌍 이다. 경로 의 거리는 이다. 에서 까지의 최단 경로는 거리가 가장 작은 경로이다. 에서 까지의 최단 경로 거리는 0이며, 이 경로는 금지된 회전을 하나도 포함하지 않는다.
방향 그래프, 금지된 회전의 집합 , 두 정점 와 가 주어졌을 때, 모든 금지된 회전을 피하는 에서 까지 최단 경로의 거리를 구하라. 각 정점의 출차수는 최대 10이다.
입력
첫 줄에 정수 , , 가 주어진다 (, , ). 은 방향 간선의 수, 은 정점의 수, 는 금지된 회전의 수이다. 정점은 0부터 까지 번호가 매겨져 있다. 둘째 줄에는 출발 정점 와 도착 정점 가 주어진다. 이어지는 개 줄에는 , , 가 주어지며, 간선 와 그 비용 를 뜻한다 (, , ). 마지막 개 줄에는 금지된 회전 가 주어진다.
출력
금지된 회전을 모두 피하는 에서 까지 최단 경로의 거리를 한 줄에 출력한다. 그런 경로가 없으면 -1을 출력한다.