Rating changes for last rounds are temporarily rolled back. They will be returned soon. ×

 
 
 
 
General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
182019992 Contestant:
yuycoding
1760G - 26 PyPy 3-64 Accepted 1747 ms 47684 KB 2022-11-21 19:36:24 2022-11-22 14:01:15
→ Source
import sys
from queue import *
input = sys.stdin.readline

t = int(input())

for _ in range(t):
    n, a, b = map(int, input().split())
    a, b = a - 1, b - 1

    adj = [[] for _ in range(n)]
    for _ in range(n - 1):
        u, v, w = map(int, input().split())
        u, v = u - 1, v - 1
        adj[u].append((v, w))
        adj[v].append((u, w))

    dep = [-1] * n
    da = [0] * n
    db = [-1] * n
    ban = [False] * n

    q = SimpleQueue()
    q.put(a)
    dep[a] = 0

    while not q.empty():
        u = q.get()
        for v, w in adj[u]:
            if dep[v] == -1:
                q.put(v)
                dep[v] = dep[u] + 1
                da[v] = da[u] ^ w
                ban[v] = (v == b) or ban[u]

    q = SimpleQueue()
    q.put(b)
    db[b] = 0

    while not q.empty():
        u = q.get()
        for v, w in adj[u]:
            if db[v] == -1:
                q.put(v)
                db[v] = db[u] ^ w

    da[b] = db[b] = -1

    cand = set()
    for i in range(n):
        if not ban[i]:
            cand.add(da[i])

    flag = False
    for i in range(n):
        if i != b and db[i] in cand:
            flag = "True"

    print("YES" if flag else "NO")
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details