Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- graf = [[] for _ in range(n)]
- distances = [[0 for _ in range(n)] for _ in range(n)]
- visited = [False for _ in range(n)]
- maximum = 0
- parents = [-1 for _ in range(n)]
- for _ in range(n-1):
- a, b = map(int, input().split())
- graf[a-1].append(b-1)
- graf[b-1].append(a-1)
- S = [0]
- # DFS iteracyjnie
- while S:
- v = S.pop()
- parent = parents[v]
- if parent != -1:
- for i in range(n):
- if visited[i]:
- distances[i][v] = distances[i][parent] + 1
- distances[v][i] = distances[parent][i] + 1
- if distances[v][i] > maximum:
- maximum = distances[v][i]
- visited[v] = True
- for neighbor in graf[v]:
- if not visited[neighbor]:
- S.append(neighbor)
- parents[neighbor] = v
- print(maximum)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement