这题至多游览三个景点,而且要求任意两个游览的景点,至多通过两条路径可以到达。
考虑游览的景点数:
时间复杂度:O(mlogm)
小红很喜欢旅游,目标是游遍全球。作为一个程序猿,小红想写个程序来规划自己的旅游路线。
现在小红来到了一个城市,这个城市有 n 个景点,有 m 条路连通这 n 个景点。游览景点 i 花费的时间为 ti ,获得的快乐值为 hi 。
第 i 条路连通 ui 和 vi 这两个景点(ui=vi),通过这条路花费的时间为 wi 。
小红精力有限,所以至多只会游览 3 个景点,且这 3 个景点是相邻的,一天游览和交通所需的时间不能超过 k 。
现在,小红想问你,在给定的时间下,通过游览景点可以获得的最大快乐值是多少。
第一行,输入三个整数 n,m,k(1≤n,m≤105,1≤k≤109),表示景点数,路径数和最大交通时间。
第二行输入 n 个整数,表示每个景点的快乐值 hi(1≤hi≤109)
第三行输入 n 个整数,表示游览每个景点的时间 ti(1≤ti≤109)
接下来 m 行,第 i 行三个数 $u_i, v_i, w_i(1\leq u_i, v_i\leq n, 1\leq w_i\leq 10^9)$ 表示两个景点和通过这条路径花费的时间。
一个整数,表示在给定的时间下,通过游览景点可以获得的最大快乐值。
输入
4 3 10
10 9 8 7
1 2 3 4
1 2 1
2 3 1
3 4 10
输出
27