1505: 浅涉拓扑

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:23 解决:9

题目描述

拓扑大门里外围级的研究,Gold King选择了拓扑排序进行了深入,这是检测图中是否存在环的一个好方法。拓扑排序是对有向无圈图顶点的一种排序,它使得如果存在一条从顶点lns="http://www.w3.org/1998/Math/MathML">到顶点lns="http://www.w3.org/1998/Math/MathML">的有向路径,那么在排序中lns="http://www.w3.org/1998/Math/MathML">处于lns="http://www.w3.org/1998/Math/MathML">后面。

算法思想是:先找出任意一个没有入边的顶点。然后显示出该顶点,并将它和它的边一起从图中删除。然后对图中剩余的点和边用同样的方法处理。

输入

第一行输入两个整数n和m,表示有n个顶点和m条边。 接下来输入m行,每行两个整数lns="http://www.w3.org/1998/Math/MathML">lns="http://www.w3.org/1998/Math/MathML">,表示从顶点lns="http://www.w3.org/1998/Math/MathML">到顶点lns="http://www.w3.org/1998/Math/MathML">有一条有向边。

输出

输出拓扑排序结果,如果图中存在环,则输出“has circle.”。
我们拓扑排序结果不唯一,本题采用栈的方式来存储满足没有入边顶点的数据,使用链式前向星存图。

样例输入 复制

4 4
1 2
1 3
4 3
2 4

样例输出 复制

1 2 4 3