41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
def solve(N, E):
|
|
D = []
|
|
D.append((0, 1, 0))
|
|
finals = []
|
|
while D:
|
|
before, header, distance = D.pop(0)
|
|
nexts = E[header]
|
|
cnt = 0
|
|
for s in nexts:
|
|
if s[0] != before:
|
|
D.append((header, s[0], distance + s[1]))
|
|
cnt += 1
|
|
if cnt == 0:
|
|
finals.append((header, distance))
|
|
|
|
D = []
|
|
s1 = max(finals, key=lambda x: x[1])
|
|
D.append((0, s1[0], 0))
|
|
finals = []
|
|
while D:
|
|
before, header, distance = D.pop(0)
|
|
nexts = E[header]
|
|
cnt = 0
|
|
for s in nexts:
|
|
if s[0] != before:
|
|
D.append((header, s[0], distance + s[1]))
|
|
cnt += 1
|
|
if cnt == 0:
|
|
finals.append((header, distance))
|
|
|
|
return max(finals, key=lambda x: x[1])[1]
|
|
|
|
|
|
if __name__ == '__main__':
|
|
N: int = int(input())
|
|
E = [[] for _ in range(N + 1)]
|
|
for a, b, v in [map(int, input().split()) for _ in range(N - 1)]:
|
|
E[a].append((b, v))
|
|
E[b].append((a, v))
|
|
print(solve(N, E))
|