황혼
시간 제한4초메모리 제한1024 MB
1번 도시에서 출발해 금지된 K개의 경로가 연속으로 나타나지 않는 경로로 각 도시까지의 최단 거리를 구합니다.
문제
오스타니아는 개의 도시와 이 도시들을 잇는 개의 도로로 이루어진 나라이다. 도시는 번부터 번까지 차례대로 번호가 붙어 있다. 번째 도로는 번 도시에서 번 도시로 가는 단방향 도로이며, 이 도로를 지나는 데 만큼의 시간이 걸린다. 두 도시 사이에는 방향별로 도로가 최대 1개 있다. 편의상 번 도시에서 번 도시로 가는 도로를 지나는 데 걸리는 시간을 라고 하자.
웨스탈리스는 오스타니아와 냉전 관계에 있는 국가이다. 웨스탈리스는 첩보원들을 통해 오스타니아에 대한 개의 정보를 얻었다. 각 정보는 하나의 단순 경로로 표현된다. 정확히는 번째 정보가 서로 다른 개 도시의 나열 이며, 모든 에 대해 번 도시에서 번 도시로 가는 도로가 존재한다. 어떤 도시도 서로 다른 두 정보에 동시에 속하지 않는다.
웨스탈리스의 첩보원 코드네임 <황혼>은 현재 오스타니아의 1번 도시에 있다. 웨스탈리스 정부는 정보를 모으기 위해 황혼에게 번 도시까지 이동하라고 지시했다. 황혼은 정보 수집 효율을 최대화하려고, 개의 단순 경로 중 어느 것도 포함하지 않는 경로로 이동하기로 했다. 구체적으로 황혼이 방문한 도시를 차례대로 이라 하면 다음 조건을 모두 만족해야 한다.
- 번 도시에서 번 도시로 가는 도로가 존재한다.
- 를 만족하는 정수 와 가 존재하지 않는다.
- 위 두 조건을 만족하면서 번 도시까지 가는 데 걸리는 시간 이 최소가 되어야 한다.
이상 이하의 모든 정수 에 대해, 황혼이 번 도시까지 이동할 수 있는지 판별하고, 이동할 수 있다면 번 도시까지 가는 데 걸리는 시간을 계산하라.
입력
첫 번째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다.
두 번째 줄부터 개의 줄에는 각각 , , 가 공백으로 구분되어 주어진다. 임의의 에 대해 번 도시에서 번 도시로 가는 도로는 하나뿐이다. 는 정수
번째 줄에는 단순 경로를 나타내는 와 가 공백으로 구분되어 주어진다. 개의 단순 경로에서 각 도시는 최대 번 나타나며, 입력에 주어진 순서대로 도로를 따라 이동할 수 있음이 보장된다.
출력
공백으로 구분된 개의 정수를 첫 번째 줄에 출력한다. 번째 정수는 황혼이 모든 조건을 만족하며 번 도시까지 가는 데 걸리는 시간이다. 번 도시에 도달할 수 없다면 -1을 출력한다.