#z160. 拓扑排序1
拓扑排序1
题目描述
在一个学校里,有许多门课程需要学习。有些课程之间存在先修关系,例如:要学习课程B,必须先学习完课程A。我们把这种关系记为A→B。现在给定所有课程和它们之间的先修关系,请你找出一种合理的学习顺序,使得所有课程都能按照先修要求顺利完成。如果存在循环依赖(例如A→B,B→C,C→A),则无法完成所有课程的学习,需要提示无法完成。
输入描述
- 第一行包含两个整数n和m,分别表示课程的总数和先修关系的数量。课程编号从1到n。
- 接下来m行,每行包含两个整数a和b,表示学习课程b之前必须先学习完课程a(即a是b的先修课程)。
输出描述
- 如果能够找到合理的学习顺序,输出一行,包含n个整数,表示课程的学习顺序,相邻两个数之间用空格隔开。
- 如果无法找到合理的学习顺序,输出"无法完成所有课程的学习"。
输入样例
3 2
1 2
1 3
输出样例
1 2 3
数据范围
- 1 ≤ n ≤ 100
- 0 ≤ m ≤ n*(n-1)