#2258. 徐老师的作弊游戏

徐老师的作弊游戏

题目描述

徐老师在玩一个游戏,这个游戏的地图由 nn 个点以及 mm 条有向边组成

每次到达第 ii 个点时,徐老师会获得 aia_i 点积分

并且在游戏中有一个限制:在任何时刻积分都必须不小于 00 且不大于 HH

问徐老师最大能够获得多少积分

本来这个游戏是存在步数限制的,而现在徐老师通过精湛的作弊密码——上上下下左左右右ABABABAB

突破了这个限制,也就是现在徐老师可以在游戏中任意移动,并且徐老师顺手将积分获得规则也进行了修改——现在每次到达第 ii 个房间,徐老师可以选择获得 aia_i 点积分,或者减去 aia_i 点积分,或者让积分不发生变化

徐老师现在想知道,对于输入了作弊码的自己,最大能获得的积分是多少?

输入格式

本题包含多组测试数据,输入第一行包含一个整数 TT 表示测试数据数量

对于每组测试数据

第一行包含三个整数 n,m,Hn,m,H,含义如题

第二行包含 nn 个整数 aia_i,分别表示每个房间的积分

接下来 mm 行,每行包含两个整数 ui,viu_i,v_i,表示从 uiu_i 房间出发可以到达 viv_i 房间(单向)

输出格式

对于每组测试数据,输出一个整数表示徐老师能获得的最大积分

数据范围

对于 100100% 的数据, 满足 $1 \le n \le 5 * 10^3,1 \le m \le 2 * 10^4,1 \le H \le 10^4,1 \le a_i \le H/2$。

对于所有数据保证 T5T\le 5 且图中没有重边与自环

测试点编号 nn mm HH 特殊性质
11 100\le100 500\le500 100\le 100 性质 11
22 500\le500 900\le900 1000\le 1000
33 5000\le5000 20000\le20000 10000\le 10000
44
55 100\le100 =n=n 100\le 100 性质 22
66 5000\le5000 10000\le 10000
77
88 20000\le20000
99
1010

性质 11 : 图中不存在环

性质 22 : 存在一个点 k(1kn)k(1\le k\le n),满足 11kk 的所有点构成唯一一个环。

样例输入

3
5 3 11
2 2 2 2 2
1 2
2 3
3 1
6 6 5
2 1 2 1 1 1
4 2
1 2
1 5
2 5
5 3
5 6
5 3 13
4 3 3 3 5
1 2
2 3
3 1

样例输出

10
5
13

样例解释

对于第一组测试数据,选择 12311-2-3-1 转圈,即可到达最大值 1010

对于第二组测试数据,我们可以选择路径42534-2-5-3,最后计数器值为55,可以证明其为计数器能达到的最大值。