#CF1016F. 道路项目
道路项目
F. 道路项目
时间限制:2 秒
内存限制:256 兆字节
在 Berland 国有 个城市。其中一些城市由双向道路连接,使得任意一对城市之间存在唯一一条简单路径(每条路最多经过一次)。每条道路有其自己的长度。城市编号为 到 。
城市 和 之间的旅行时间定义为从 到 的最短路径上所有道路的长度之和。
Berland 最重要的两个城市是城市 和城市 。
Berland 交通部决定修建一条新的道路来减少最重要城市之间的交通压力。然而,很多人已经习惯了当前最重要的两个城市之间的旅行时间,所以新道路不应该太大改变它。
新道路只能修建在满足 且 和 之间尚未有直接道路连接的城市对 之间。
他们提出了 个可能的项目。每个项目仅包含新道路的长度 。
Polycarp 是 Berland 交通部的首席分析师,他的工作是处理所有 个项目。对于第 个项目,他需要选择一些城市 和 ,在它们之间修建长度为 的新道路,使得最重要城市之间的旅行时间尽可能大。
不幸的是,Polycarp 不是程序员,而且世界上没有哪个分析师能用纸笔处理完所有这些项目。
因此,他请你帮助他计算每个项目下,最重要城市之间可能的最大旅行时间。注意:对于不同的项目, 和 的选择可以不同。
输入格式
第一行包含两个整数 和 (,)——城市数量与项目数量。
接下来 行,每行包含三个整数 (,)——第 条道路的描述。保证任意两个城市之间存在唯一一条简单路径。
接下来 行,每行包含一个整数 ()——第 个项目的新道路长度。
输出格式
输出 行,第 行包含一个整数——第 个项目下最重要城市之间可能的最大旅行时间。
示例
输入
7 2
1 2 18
2 3 22
3 4 24
4 7 24
2 6 4
3 5 12
1
100
输出
83
88
注意
第一个示例中的道路网络如下:
(图片略)
可以在城市 和 之间修建长度为 的道路,得到 和 之间的旅行时间为 (路径 长度为 )。其他城市对得到的答案小于等于 。