32 lines
710 B
Python
32 lines
710 B
Python
import sys
|
|
sys.setrecursionlimit(10**6)
|
|
input = sys.stdin.readline
|
|
|
|
ans = []
|
|
|
|
for _ in range(int(input())) :
|
|
N, K = map(int, input().split())
|
|
bt = [0] + list(map(int, input().split()))
|
|
|
|
prev_build = [[] for _ in range(N+1)]
|
|
for _ in range(K) :
|
|
x, y = map(int, input().split())
|
|
prev_build[y].append(x)
|
|
|
|
W = int(input())
|
|
dp = [-1]*(N+1)
|
|
|
|
def build(n) :
|
|
if dp[n] == -1 :
|
|
prev_time = 0
|
|
|
|
for prev in prev_build[n] :
|
|
prev_time = max(prev_time, build(prev))
|
|
|
|
dp[n] = prev_time + bt[n]
|
|
|
|
return dp[n]
|
|
|
|
ans.append(build(W))
|
|
|
|
print("\n".join(map(str, ans))) |