Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. def main():
  2. n = int(input())
  3. projects = dict()
  4. for i in range(n):
  5. name, version = input().split()
  6. if i == 0:
  7. pn = name
  8. pv = int(version)
  9. if name not in projects:
  10. projects[name] = dict()
  11. projects[name][int(version)] = list()
  12. k = int(input())
  13. for j in range(k):
  14. na, v = input().split()
  15. projects[name][int(version)].append((na, int(v)))
  16. if i != (n - 1):
  17. input()
  18. line = list()
  19. line.append((pn, pv))
  20. ind = 0
  21. d = dict()
  22. depth = dict()
  23. dd = 0
  24. while len(line) != 0:
  25. line2 = list()
  26. while ind != len(line):
  27. name, version = line[ind]
  28. ind += 1
  29. for (nm, vr) in projects[name][version]:
  30. if nm not in d:
  31. d[nm] = vr
  32. line2.append(nm)
  33. depth[nm] = dd
  34. else:
  35. if depth[nm] == dd:
  36. d[nm] = max(d[nm], vr)
  37. line = list()
  38. ind = 0
  39. for elem in line2:
  40. line.append((elem, d[elem]))
  41. dd += 1
  42. line = list()
  43. for key in d:
  44. if key != pn:
  45. line.append([key, d[key]])
  46. line.sort()
  47. print(len(line))
  48. for name, version in line:
  49. print(name, version)
  50.  
  51. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement