def count():
n, x, y = list(map(int, input().split()))
graph = [[] for _ in range(n + 1)]
for i in range(n - 1):
x1, x2 = list(map(int, input().split()))
graph[x1].append(x2)
graph[x2].append(x1)
# 存储着x/y到index需要的步数
res_x, res_y = [0] * (n + 1), [0] * (n + 1)
def dfs(res, number, time=1):
# 最外层dfs算第一步,所以time=1
res[number] = time
for i in graph[number]:
if res[i] == 0:
# 以i为起点,继续dfs
dfs(res, i, time + 1)
# 以x为起点,dfs,计的步数放在res_x里,对应其index
dfs(res_x, x)
dfs(res_y, y)
print(max(res_x[i] - 1 if res_x[i] > res_y[i] else 0 for i in range(n)))
count()
美团2021校招笔试-小团无路可逃
最新推荐文章于 2025-05-08 02:42:23 发布