用标准算法每次输出入度最小的顶点,本题没有找到太多压缩代码的手段。
最终代码有十行。
代码长度:222字节 vs. 全站第一:95字节。
import sys
for s in sys.argv[1:]:
d,r={},[]
for u,_,v in s.split('\n'):d[v]=d.get(v,set())|{u};d[u]=d.get(u,set())
while d:
t,u=min((len(x),v)for v,x in d.items())
r+=[u]
del d[u]
for v in d:d[v]-={u}
print(*r)
|