1번 도시에서 각 도시로 가는 경로 중 이동 시간의 합과 비용의 합을 곱한 값이 최소가 되는 경로를 찾고, 도달할 수 없으면 -1을 출력한다.
어떤 나라에 도시 NNN개와 양방향 도로 MMM개가 있다. iii번 도로를 달리면 TiT_iTi분이 걸리고 CiC_iCi쿠나가 든다. 쿠나는 크로아티아의 화폐 단위다.
당신은 111번 도시에서 출발한다. 어떤 경로로 이동할 때, 그 경로에 속한 도로의 TiT_iTi를 모두 더한 값을 총 시간, CiC_iCi를 모두 더한 값을 총 비용이라고 하자. 경로의 값은 총 시간과 총 비용을 곱한 값이다.
111번 도시를 제외한 각 도시마다, 111번 도시에서 그 도시로 가는 경로의 값 중 최솟값을 구하라. 경로가 없으면 −1-1−1을 출력한다.
첫째 줄에 도시의 수 NNN (1≤N≤20001 \le N \le 20001≤N≤2000)과 도로의 수 MMM (1≤M≤20001 \le M \le 20001≤M≤2000)이 주어진다.
다음 MMM개 줄에는 각각 네 정수 AiA_iAi, BiB_iBi, TiT_iTi, CiC_iCi (1≤Ai,Bi≤N1 \le A_i, B_i \le N1≤Ai,Bi≤N, 1≤Ti,Ci≤20001 \le T_i, C_i \le 20001≤Ti,Ci≤2000)가 주어진다. 이는 AiA_iAi번 도시와 BiB_iBi번 도시를 잇는 도로가 있고, 이 도로를 달리는 데 TiT_iTi분과 CiC_iCi쿠나가 든다는 뜻이다.
두 도시를 잇는 도로가 여러 개일 수 있다. 자기 자신을 잇는 도로는 없다.
N−1N - 1N−1개 줄을 출력한다. iii번째 줄에는 111번 도시에서 i+1i + 1i+1번 도시로 가는 경로의 값 중 최솟값을 출력한다. 두 도시가 연결되어 있지 않으면 −1-1−1을 출력한다.
두 번째 예제를 살펴보자.
222번 도시로 가려면 111번 도로를 달린다. 111분과 777쿠나가 들므로 값은 777이다.
333번 도시로 가려면 222번 도로를 달린다. 333분과 222쿠나가 들므로 값은 666이다.
444번 도시로 가려면 222번, 444번, 555번 도로를 순서대로 달린다. 모두 합쳐 111111분과 444쿠나가 들므로 값은 444444이다.