페테르부르크에서 모스크바까지
시간 제한3초메모리 제한512 MB
도시 1에서 도시 n까지 가는 경로 중 비용이 가장 큰 k개 간선의 합만 지불할 때 최소 비용을 구한다. 경로 길이가 k 이하면 모든 간선 비용을 지불한다.
문제
2112년 세계 프로그래밍 컵을 치르려고 러시아의 유럽 지역에 유료 도로망을 새로 깔았다. 이 도로망은 도시 개를 잇는 양방향 도로 개로 이루어진다. 각 도로는 서로 다른 두 도시를 직접 잇고, 같은 도시 쌍을 잇는 도로는 둘 이상 없으며, 이 도로망만 써서 어느 도시에서 어느 도시로든 갈 수 있다. 요금 정산을 편하게 하려고 두 도로가 도시 밖에서 교차하지 않도록 놓았다.
도로마다 양의 정수 요금이 정해져 있다. 원래는 운전자가 유료 도로를 이용하면 지나간 도로의 요금을 모두 더한 금액을 낸다. 두 수도를 오가는 자동차 여행을 늘리려고 운영사 Radishchev는 특별 할인을 내놓았다. 상트페테르부르크에서 모스크바로 가는 여행이라면 경로에서 가장 비싼 도로 개의 요금만 내면 된다.
정확히 말하면 경로가 도로 개로 이루어져 있다고 하자. 경로에서 가장 비싼 도로의 요금을 , 두 번째로 비싼 도로의 요금을 라 하는 식으로 두면 이 된다. 이면 경로가 짧아서 할인이 없고 운전자는 평소처럼 를 낸다. 이면 가장 비싼 도로 개의 요금, 즉 만 낸다.
Radishchev의 수석 분석가가 되어 상트페테르부르크에서 모스크바까지 가는 가장 싼 여행 비용을 구하라.
입력
첫째 줄에 정수 , , (, , )가 주어진다. 각각 도시의 수, 도로의 수, 한 번의 여행에서 요금을 내는 도로의 최대 개수이다.
다음 개 줄에 도로 정보가 주어진다. 번째 줄에는 정수 , , (, , )가 주어지며, 도시 와 도시 를 잇는 양방향 도로의 요금이 어느 방향으로 가든 라는 뜻이다. 같은 도시 쌍을 잇는 도로는 많아야 하나이고, 주어진 도로만 써서 모든 도시 사이를 오갈 수 있다.
출력
1번 도시(상트페테르부르크)에서 번 도시(모스크바)까지 가는 최소 여행 비용을 정수 하나로 출력한다.