Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def main():
- n = int(input())
- projects = dict()
- for i in range(n):
- name, version = input().split()
- if i == 0:
- pn = name
- pv = int(version)
- if name not in projects:
- projects[name] = dict()
- projects[name][int(version)] = list()
- k = int(input())
- for j in range(k):
- na, v = input().split()
- projects[name][int(version)].append((na, int(v)))
- if i != (n - 1):
- input()
- line = list()
- line.append((pn, pv))
- ind = 0
- d = dict()
- depth = dict()
- dd = 0
- while len(line) != 0:
- line2 = list()
- while ind != len(line):
- name, version = line[ind]
- ind += 1
- for (nm, vr) in projects[name][version]:
- if nm not in d:
- d[nm] = vr
- line2.append(nm)
- depth[nm] = dd
- else:
- if depth[nm] == dd:
- d[nm] = max(d[nm], vr)
- line = list()
- ind = 0
- for elem in line2:
- line.append((elem, d[elem]))
- dd += 1
- line = list()
- for key in d:
- if key != pn:
- line.append([key, d[key]])
- line.sort()
- print(len(line))
- for name, version in line:
- print(name, version)
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement