#B0192. 雾区通行

雾区通行

题目描述

边境线上有 nn 座城市,城市编号为 1n1 \sim n

ii 座城市设有一处安检站,想要经过这座城市,就必须接受安检并支付费用 aia_i。一条旅行路线经过了哪些城市,就需要考虑这些城市中的最大安检费用

城市之间有 mm 条双向道路。第 jj 条道路连接城市 uj,vju_j, v_j,通过这条道路需要消耗体力 wjw_j

现在,Aki 想从城市 11 出发前往城市 nn。他一共只能承受不超过 BB 的道路体力消耗,也就是整条路线满足:

wjB\sum w_j \le B

在所有满足体力限制的路线中,你需要帮他让“路线中出现的最大安检费用”尽量小。

如果无论如何都无法在体力限制内到达城市 nn,输出 AFK

输入格式

第一行三个整数 n,m,Bn, m, B

第二行 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,表示每座城市的安检费用。

接下来 mm 行,每行三个整数 u,v,wu, v, w,表示城市 uu 和城市 vv 之间有一条双向道路,单次通过这条道路需要消耗体力 ww

数据范围:

  • 1n5×1041 \le n \le 5 \times 10^4
  • 1m1051 \le m \le 10^5
  • 1ai1091 \le a_i \le 10^9
  • 1w1061 \le w \le 10^6
  • 1B10121 \le B \le 10^{12}

输出格式

输出一行:

  • 若存在可行路线,输出最小可能的“路线最大安检费用”;
  • 否则输出 AFK
5 6 7
5 1 7 3 4
1 2 2
2 5 2
1 3 1
3 4 1
4 5 1
2 4 3
5