문제
추운 겨울을 피해 따뜻한 곳으로 여행을 가고 싶은 서현이는 항공사 '에어 대전'을 통해 여행 계획을 세우고 있다. 하지만 이 항공사의 티켓 구조는 다소 복잡하다.
에어 대전은 개의 노선을 운영한다 (). 각 노선은 두 개 이상의 도시를 지나는 특정한 경로로 구성된다. 예를 들어, 어떤 노선은 도시 1에서 시작하여 도시 5, 도시 2를 거쳐 도시 8에서 끝날 수 있다. 한 노선에서 같은 도시가 여러 번 나타나지는 않는다. 서현이가 어떤 노선을 이용하기로 했다면, 해당 노선에 포함된 어떤 도시에서든 탑승할 수 있으며, 그 이후에 나타나는 어떤 도시에서든 내릴 수 있다. 노선의 전체를 이용하든 일부만 이용하든 상관없이, 해당 노선을 이용한다면 정해진 비용을 전액 지불해야 한다.
서현이는 현재 위치한 도시 에서 목적지인 도시 까지 이동하는 가장 저렴한 방법을 찾으려 한다. 복잡한 여행 일정은 피하고 싶기에, 서현이는 단 하나의 노선만을 이용하기로 했다. 서현이가 지불해야 하는 최소 비용을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 서현이의 현재 위치 , 목적지 , 그리고 항공 노선의 수 이 공백으로 구분되어 주어진다. (; )
이어서 개의 줄에 걸쳐 각 노선의 정보가 두 줄씩 주어진다.
첫 번째 줄에는 노선 이용 비용( 이상 이하의 정수)과 노선에 포함된 도시의 수( 이상 이하의 정수)가 공백으로 구분되어 주어진다.
두 번째 줄에는 해당 노선이 지나는 도시의 번호들이 경로 순서대로 공백으로 구분되어 주어진다. 각 도시 번호는 이상 이하의 정수이다.
출력
서현이가 도시 에서 도시 로 이동하기 위해 이용할 수 있는 단일 노선의 최소 비용을 출력한다. 만약 그러한 노선이 존재하지 않는다면 -1을 출력한다.
예제 입력 1
1 2 3
3 3
3 2 1
4 4
2 1 4 3
8 5
4 1 7 8 2
예제 출력 1
8
코드를 제출하려면 로그인이 필요합니다.
로그인