비행기 타고 가요
시간 제한2초메모리 제한1024 MB
출발 도시와 도착 도시의 범위가 정해진 티켓을 한 번씩만 써서 도시 K에서 각 도시까지 가는 최소 비용을 구합니다.
문제
정보과학을 잘하는 사람만 거주할 수 있다는 국가, '경곽국'을 아는가? 경곽국은 총 개의 도시로 이루어져 있으며, 각각 1번부터 번까지 번호가 붙어 있다.
경곽국에서 도시 사이를 이동하는 수단은 비행기뿐이다. 모든 도시쌍에 대하여 그 두 도시 사이를 경유하는 비행기가 존재한다. 다만, 비행기를 타려면 '비행기 표'가 필요하다. 경곽국에서 구매할 수 있는 비행기 표는 총 개이며, 각각 1번부터 번까지 번호가 붙어 있다. 번 표의 가격은 원이고, 출발 도시의 번호가 이상 이하이고 도착 도시의 번호가 이상 이하일 때에만 사용할 수 있다 ().
모든 개의 표는 일회용이며 한 번만 구매할 수 있다.
교준이의 집은 번 도시에 있다. 현재 교준이는 집에서 놀고 있다.
교준이가 집을 나와 번 도시로 가기 위해 구매해야 하는 표 값의 합의 최솟값을 라 하자 (). 단, 교준이는 집을 나오기 전에 필요한 모든 비행기 표를 구매한다. 어떻게 표를 사서 이동하더라도 번 도시로 갈 수 없다면 로 정의한다.
의 값을 모두 구하는 프로그램을 작성하시오.
입력
첫 번째 줄에 도시의 개수 , 비행기 표의 총 개수 , 교준이의 집이 있는 도시의 번호 가 공백으로 구분되어 주어진다.
두 번째 줄부터 개의 줄에 걸쳐 비행기 표의 정보가 주어진다. 번째 줄에는 번 표의 정보인 다섯 정수 , , , , 가 공백으로 구분되어 주어진다 ().
출력
첫 번째 줄에 개의 정수 을 공백으로 구분하여 차례대로 출력한다.
임에 유의하라.
제한
- ()
- ()
- ()