#CF1801D. 回家之路

回家之路

回家之路

  • 时间限制:3 秒
  • 内存限制:512 MiB

题目描述

有 nn 座城市和 mm 个单向航班。乘坐航班 (a,b,s)(a,b,s) 前必须在城市 aa 且持有至少 ss 卢布,登机时会支付这笔钱。

你从城市 11 出发,初始有 pp 卢布。在城市 ii 可以进行任意次表演,每次获得 wiw_i 卢布。求到达城市 nn 所需的最少表演次数;如果无法到达,输出 −1-1。

输入格式

第一行包含测试组数 tt。每组第一行包含 n,m,pn,m,p;第二行包含 w1,…,wnw_1,\ldots,w_n;随后 mm 行每行包含 a,b,sa,b,s,表示一条从 aa 到 bb、价格为 ss 的航班。

输出格式

对每组输出一个整数。

样例输入 1

4
4 4 2
7 4 3 1
1 2 21
3 2 6
1 3 8
2 4 11
4 4 10
1 2 10 1
1 2 20
2 4 30
1 3 25
3 4 89
4 4 7
5 1 6 2
1 2 5
2 3 10
3 4 50
3 4 70
4 1 2
1 1 1 1
1 3 2

样例输出 1

4
24
10
-1

数据范围

  • 1≤t≤801\le t\le80;
  • 2≤n≤8002\le n\le800,1≤m≤30001\le m\le3000;
  • 0≤p≤1090\le p\le10^9,1≤wi,si≤1091\le w_i,s_i\le10^9;
  • 所有测试组的 nn 之和不超过 800800,mm 之和不超过 30003000。
子任务编号 分值 特殊限制
1 20 每组 n≤8,m≤16n\le8,m\le16
2 40 每组所有 wiw_i 相同
3 无特殊限制