架设电话线
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

在郊区有N座通信基站,P条双向电缆,第i条电缆连接基站A_iB_i。特别地,1号基站是通信公司的总站,N号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第i条电缆需要花费L_i
电话公司正在举行优惠活动。农场主可以指定一条从1号基站到N号基站的路径,并指定路径上不超过K条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少用多少钱能完成升级。
一句话题意在加权无向图上求出一条从1号结点到N号结点的路径,使路径上第K+1大的边权尽量小。

输入描述:

第一行三个整数N,P,K.
接下来P行,每行三个整数A_i,B_i,L_i.

输出描述:

若不存在从1到N的路径,输出-1。否则输出所需最小费用。
示例1

输入

复制
5 7 1
1 2 5
3 1 4
2 4 8
3 2 3
5 2 9
3 4 7
4 5 6

输出

复制
4

备注: