35 lines
740 B
Python
35 lines
740 B
Python
import sys
|
|
|
|
input = sys.stdin.readline
|
|
|
|
def bellman_ford(edges, N) :
|
|
dist = [0]*(N+1)
|
|
|
|
for n in range(N) :
|
|
for s,e,t in edges :
|
|
if dist[e] > dist[s] + t :
|
|
dist[e] = dist[s] + t
|
|
|
|
if n == N-1:
|
|
return True
|
|
|
|
return False
|
|
|
|
ans = []
|
|
|
|
for _ in range(int(input())) :
|
|
N, M, W = map(int, input().split())
|
|
edges = []
|
|
|
|
for _ in range(M) :
|
|
S, E, T = map(int, input().split())
|
|
edges.append((S,E,T))
|
|
edges.append((E,S,T))
|
|
|
|
for _ in range(W) :
|
|
S, E, T = map(int, input().split())
|
|
edges.append((S,E,-T))
|
|
|
|
ans.append("YES" if bellman_ford(edges, N) else "NO")
|
|
|
|
print("\n".join(ans)) |