Advertisement
Viktor_von_Matfyz

Minimax

May 20th, 2020
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.99 KB | None | 0 0
  1. from sys import maxsize
  2. import time
  3.  
  4. start = time.time()
  5.  
  6.  
  7. data = open('data.txt', 'r')
  8.  
  9. n = int(data.readline())
  10. tree = [[[], 0] for i in range(n + 1)]
  11. edges = []
  12. for i in range(n - 1):
  13.     a, b, c = map(int, data.readline().split())
  14.     tree[a][0].append([b, c])
  15.     edges.append([a, b, c])
  16.  
  17.  
  18. def set_vertex_price(tree, vertex_num):
  19.     if tree[vertex_num][0] == []:
  20.         tree[vertex_num][1] = 0
  21.         return 0
  22.     else:
  23.         vertex_price = 0
  24.         for neighbor in tree[vertex_num][0]:
  25.             vertex_price += set_vertex_price(tree, neighbor[0]) + neighbor[1]
  26.         tree[vertex_num][1] = vertex_price
  27.         return vertex_price
  28.  
  29.  
  30. set_vertex_price(tree, 1)
  31. min_cost = maxsize
  32. arg_min_cost = []
  33. for edge in edges:
  34.     temp_cost = max(tree[1][1] - tree[edge[1]][1] - edge[2], tree[edge[1]][1])
  35.  
  36.     if temp_cost <= min_cost:
  37.         min_cost = temp_cost
  38.         arg_min_cost = edge
  39.  
  40. print(min_cost)
  41. end = time.time()
  42. # print(end - start)
  43. # print(arg_min_cost)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement