여행세
시간 제한3초메모리 제한256 MB
도시 1에서 n까지 이동할 때, 각 도시에서 들어오는 도로와 나가는 도로 세율의 최댓값을 합한 값이 최소가 되는 경로를 찾는다.
문제
바이트 왕국의 통치자는 전 세계적인 흐름에 발맞추어 가능한 모든 것에 세금을 매기기로 했다. 가장 최근에 도입된 세금은 이른바 여행세로, 나라 안을 이동하는 모든 사람이 내야 한다.
바이트 왕국의 모든 도로에는 세율이 정해져 있다. 여행 중 어떤 도시를 지날 때에는 그 도시의 관청에서 세금을 내야 하는데, 이 세금은 그 도시로 들어올 때 이용한 도로의 세율과 그 도시에서 나갈 때 이용하는 도로의 세율 중 더 큰 값으로 정해진다. 출발 도시와 도착 도시에서도 세금을 내며, 이때는 이용하는 도로가 하나뿐이므로 그 한 도로의 세율만으로 세금을 계산한다.
당신의 친구 바이타자르는 번 도시에서 번 도시까지 여행하려고 한다. 그가 내는 세금의 총합이 최소가 되도록 이동 경로를 계획해 주어라.
입력
첫째 줄에 도시의 수 과 도로의 수 이 주어진다 (, ). 도시에는 번부터 번까지 번호가 붙어 있다.
이어지는 개의 줄에는 각 도로의 정보가 주어진다. 번째 줄에는 세 정수 , , 가 주어진다 (, , ). 이는 도시 와 가 양방향 도로로 연결되어 있고 그 도로의 세율이 바이트탈러임을 뜻한다. 임의의 두 도시 사이에는 도로가 최대 한 개 있다.
출력
번 도시에서 번 도시까지 이동하는 데 드는 세금의 최솟값(바이트탈러 단위)을 정수 하나로 한 줄에 출력한다. 두 도시를 잇는 도로의 경로는 항상 존재한다고 가정해도 된다.
힌트
예를 들어 도로가 세율 , 세율 , 세율 , 세율 , 세율 로 주어졌다고 하자. 최적 경로는 도시 를 지난다. 각 도시에서 내는 세금은 차례대로 , , , 이고, 이를 모두 더하면 가 된다.