Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. mx = (1 << 33) - 1
  2.  
  3. n = int(input())
  4.  
  5. grf = [[0 for j in range(n)] for i in range(n)]
  6.  
  7. st = input()
  8. while(st != ""):
  9. i, j, val = map(int, st.split())
  10. grf[i - 1][j - 1] = val
  11. st = input()
  12.  
  13. mkr = list(map(list, grf))
  14.  
  15. flag = True
  16. while(flag):
  17. flag = False
  18.  
  19. for i in range(n):
  20. for j in range(n):
  21. if(i == j):
  22. continue
  23.  
  24. for k in range(n):
  25. if(k != i and k != j and (mkr[i][j] > grf[i][k] + grf[k][j] or mkr[i][j] == 0) and grf[i][k] != 0 and grf[k][j] != 0):
  26. flag = True
  27. mkr[i][j] = grf[i][k] + grf[k][j]
  28.  
  29. for ip in range(n):
  30. for jp in range(n):
  31. if(ip == ip):
  32. break
  33.  
  34. i, p = ip, jp
  35. print(str(i) + "->" + str(j) + "(" + str(mkr[i][j]) + "):")
  36. print(str(i) + "->", end = '')
  37. while(grf[i][j] != mkr[i][j]):
  38. for k in range(n):
  39. if(k != i and k != j and mkr[i][k] and grf[i][j] == mkr[i][k] + mkr[k][j]):
  40. print(str(k) + "(" + str(mkr[i][k]) + ")->", end = '')
  41. i = k
  42. break
  43.  
  44. print(str(j) + "(" + str(mkr[i][j]) + ")")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement