#P5895. [IOI2013] dreaming 梦想

[IOI2013] dreaming 梦想

题目描述

天地之初,IOI 尚在遥远的梦想之中。

Serpent(水蛇) 生活的地方有 NN 个水坑,编号为 0N10,\cdots,N - 1,有 MM 条双向小路连接 这些水坑。每两个水坑之间至多有一条路径(路径包含一条或多条小路)相互连接,有些水坑之间根本无法互通(即 MN1M ≤ N-1 )。Serpent 走过每条小路需要一个固定的天数,不同的小路需要的天数可能不同。

Serpent 的朋友袋鼠希望新修 NM1N - M - 1 条小路,让Serpent 可以在任何两个水坑间游走。袋鼠可以在任意两个水坑之间修路,Serpent 通过每条新路的时间都是 LL 天。

袋鼠希望找到一种修路方式使得修路之后 Serpent 在每两个水坑之间游走的最长时间最短。

举例说明

上图中有 1212 个水坑 88 条小路 (N=12,M=8N = 12 , M = 8)。假如 L=2L = 2,即 Serpent 通过任何一条新路都需要 22 天。那么,袋鼠可以修建 33 条新路:

  • 水坑 11 和水坑 22 之间;
  • 水坑 11 和水坑 66 之间;
  • 水坑 44 和水坑 1010 之间。

上图显示了修路后的最终状态。从水坑 00 走到水坑 1111 的时间最长,需要 1818 天。这是最佳结果,无论袋鼠如何选择修路方式,总会存在一些水坑对,Serpent 需要 1818 天或者更长时间从其中一个走到另一个。

输入格式

  • 11 行: NN 表示水坑的数目,MM 表示原本存在的小路的数目,LL 表示 Serpent 通过新修的路径的时间。
  • 2,,M+12,\cdots, M + 1 行: A[i]A[i]B[i]B[i]T[i]T[i]AABBTT 分别为三个包含 MM 个元素的数组,分别表示每条小路的两个端点和通过这条小路的时间。例如,第 ii 条小路连接水坑 A[i1]A[i-1] 和水坑 B[i1]B[i-1],通过这条小路的时间是 T[i1]T[i-1] 天。

例如:题目中的例子应该表示为以下格式

12 8 2
0 8 4
8 2 2
2 7 4
5 11 3
5 1 7
1 3 1
1 9 5
10 6 3

输出格式

如上所述,表示游走于两个距离最远的水坑之间所需的时间

12 8 2
0 8 4
8 2 2
2 7 4
5 11 3
5 1 7
1 3 1
1 9 5
10 6 3
18

提示

对于 100%100\% 的数据,1N1051 \le N \le 10^50MN10 \le M \le N-10A[i],B[i]N10 \le A[i],B[i] \le N-11T[i]1041 \le T[i] \le 10^41L1041 \le L \le 10^4