#CSES1196. 航班路线

    ID: 238 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>图论DijkstraK短路优先队列CSES数组排序最短路

航班路线

题目背景

翻译自 CSES-1196 题。

题目描述

你的任务是找出从 Syrjälä 到 Metsälä 的 kk 条最短航班路线。一个路线可以多次经过同一个城市。

注意:可能存在多个价格相同的路线,每条这样的路线都应该被考虑(请参考示例)。

输入格式

第一行包含三个整数 nnmm,和 kk:分别表示城市的数量、航班的数量和需要找到的最短路线的数量 kk。城市编号为 1,2,,n1,2,\ldots,n,其中城市 11 是 Syrjälä,城市 nn 是 Metsälä。

接下来的 mm 行,每行描述一条航班,包含三个整数 aabb,和 cc:表示从城市 aa 到城市 bb 的一条单向航班,航班的价格为 cc

你可以假设从 Syrjälä 到 Metsälä 至少有 kk 条不同的路线。

输出格式

输出 kk 个整数:表示从 Syrjälä 到 Metsälä 的 kk 条最便宜路线的价格,并按照价格从小到大排序。

样例

4 6 3
1 2 1
1 3 3
2 3 2
2 4 6
3 2 8
3 4 1
4 4 7

提示

最便宜的三条路线分别是:

  1. 1341 \to 3 \to 4(价格为 44
  2. 12341 \to 2 \to 3 \to 4(价格为 44
  3. 1241 \to 2 \to 4(价格为 77

因此,输出价格分别为 444477

数据范围

  • 2n1052 \le n \le 10^5
  • 1m21051 \le m \le 2 \cdot 10^5
  • 1a,bn1 \le a,b \le n
  • 1c1091 \le c \le 10^9
  • 1k101 \le k \le 10