AcWing 1191. 家谱树
原题链接
简单
作者:
不染是非
,
2025-06-06 18:07:22
· 陕西
,
所有人可见
,
阅读 2
from collections import deque
n = int(input())
din = [0] * (n + 1)
dout = [0] * (n + 1)
g = [[] for i in range(n + 1)]
for i in range(1, n + 1):
line = list(map(int, input().split()))
for j in line[:len(line) - 1]:
dout[i] += 1
din[j] += 1
g[i].append(j)
path = []
def bfs():
q = deque()
for i in range(1, n + 1):
if din[i] == 0:
q.append(i)
path.append(i)
while q:
i = q.popleft()
for j in g[i]:
din[j] -= 1
if din[j] == 0:
q.append(j)
path.append(j)
bfs()
print(" ".join(map(str, path)))