✅ 정답 공개
from collections import deque
n=int(input())
graph=[[] for _ in range(n+1)]
for _ in range(n-1):
u,v=map(int,input().split())
graph[u].append(v); graph[v].append(u)
def bfs(start, blocked_u, blocked_v):
visited={start}; q=deque([start])
while q:
node=q.popleft()
for nxt in graph[node]:
if nxt not in visited and not (node==blocked_u and nxt==blocked_v) and not (node==blocked_v and nxt==blocked_u):
visited.add(nxt); q.append(nxt)
return len(visited)
result=float('inf')
for u in range(1,n+1):
for v in graph[u]:
if u<v:
sz=bfs(u,u,v)
result=min(result, abs(sz-(n-sz)))
print(result)