2026-03-20 22:40:39 +09:00

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)))