File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import sys
2+ sys .setrecursionlimit (10 ** 6 )
3+
4+ def main ():
5+ input = sys .stdin .readline
6+ T = int (input ())
7+
8+ for _ in range (T ):
9+ N = int (input ())
10+ parent = [0 ] * (N + 1 )
11+ depth = [0 ] * (N + 1 )
12+ tree = [[] for _ in range (N + 1 )]
13+ isChild = [False ] * (N + 1 )
14+ for _ in range (N - 1 ):
15+ a , b = map (int , input ().split ())
16+ parent [b ] = a
17+ tree [a ].append (b )
18+ isChild [b ] = True
19+
20+ root = 0
21+ for i in range (1 , N + 1 ):
22+ if not isChild [i ]:
23+ root = i
24+ break
25+
26+ def dfs (node , d ):
27+ depth [node ] = d
28+ for child in tree [node ]:
29+ dfs (child , d + 1 )
30+
31+ dfs (root , 0 )
32+
33+ a , b = map (int , input ().split ())
34+
35+ while depth [a ] > depth [b ]:
36+ a = parent [a ]
37+ while depth [a ] < depth [b ]:
38+ b = parent [b ]
39+
40+ while a != b :
41+ a = parent [a ]
42+ b = parent [b ]
43+
44+ print (a )
45+
46+ if __name__ == '__main__' :
47+ main ()
You can’t perform that action at this time.
0 commit comments