Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import maxsize
- import time
- start = time.time()
- data = open('data.txt', 'r')
- n = int(data.readline())
- tree = [[[], 0] for i in range(n + 1)]
- edges = []
- for i in range(n - 1):
- a, b, c = map(int, data.readline().split())
- tree[a][0].append([b, c])
- edges.append([a, b, c])
- def set_vertex_price(tree, vertex_num):
- if tree[vertex_num][0] == []:
- tree[vertex_num][1] = 0
- return 0
- else:
- vertex_price = 0
- for neighbor in tree[vertex_num][0]:
- vertex_price += set_vertex_price(tree, neighbor[0]) + neighbor[1]
- tree[vertex_num][1] = vertex_price
- return vertex_price
- set_vertex_price(tree, 1)
- min_cost = maxsize
- arg_min_cost = []
- for edge in edges:
- temp_cost = max(tree[1][1] - tree[edge[1]][1] - edge[2], tree[edge[1]][1])
- if temp_cost <= min_cost:
- min_cost = temp_cost
- arg_min_cost = edge
- print(min_cost)
- end = time.time()
- # print(end - start)
- # print(arg_min_cost)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement