Ceste
시간 제한2.5초메모리 제한128 MB
1번 도시에서 각 도시로 가는 경로 중 이동 시간의 합과 비용의 합을 곱한 값이 최소가 되는 경로를 찾고, 도달할 수 없으면 -1을 출력한다.
문제
어떤 나라에 도시 개와 양방향 도로 개가 있다. 번 도로를 달리면 분이 걸리고 쿠나가 든다. 쿠나는 크로아티아의 화폐 단위다.
당신은 번 도시에서 출발한다. 어떤 경로로 이동할 때, 그 경로에 속한 도로의 를 모두 더한 값을 총 시간, 를 모두 더한 값을 총 비용이라고 하자. 경로의 값은 총 시간과 총 비용을 곱한 값이다.
번 도시를 제외한 각 도시마다, 번 도시에서 그 도시로 가는 경로의 값 중 최솟값을 구하라. 경로가 없으면 을 출력한다.
입력
첫째 줄에 도시의 수 ()과 도로의 수 ()이 주어진다.
다음 개 줄에는 각각 네 정수 , , , (, )가 주어진다. 이는 번 도시와 번 도시를 잇는 도로가 있고, 이 도로를 달리는 데 분과 쿠나가 든다는 뜻이다.
두 도시를 잇는 도로가 여러 개일 수 있다. 자기 자신을 잇는 도로는 없다.
출력
개 줄을 출력한다. 번째 줄에는 번 도시에서 번 도시로 가는 경로의 값 중 최솟값을 출력한다. 두 도시가 연결되어 있지 않으면 을 출력한다.
힌트
두 번째 예제를 살펴보자.
번 도시로 가려면 번 도로를 달린다. 분과 쿠나가 들므로 값은 이다.
번 도시로 가려면 번 도로를 달린다. 분과 쿠나가 들므로 값은 이다.
번 도시로 가려면 번, 번, 번 도로를 순서대로 달린다. 모두 합쳐 분과 쿠나가 들므로 값은 이다.