Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import defaultdict, deque
- import sys
- def main():
- # Чтение входных данных из stdin
- lines = sys.stdin.read().splitlines()
- # Создание графа зависимостей
- graph = defaultdict(list)
- in_degree = defaultdict(int)
- for line in lines:
- if '->' in line:
- # Извлечение зависимостей
- parts = line.strip().split('->')
- u = parts[0].strip().strip('"')
- v = parts[1].split('[')[0].strip().strip('"')
- graph[u].append(v)
- in_degree[v] += 1
- if u not in in_degree:
- in_degree[u] = 0
- # Топологическая сортировка с использованием BFS
- queue = deque([node for node in in_degree if in_degree[node] == 0])
- result = []
- while queue:
- node = queue.popleft()
- result.append(node)
- for neighbor in graph[node]:
- in_degree[neighbor] -= 1
- if in_degree[neighbor] == 0:
- queue.append(neighbor)
- # Вывод результата
- for package in result[::-1]:
- print(package)
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement