2751: 先导课程

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

题目描述

现有n门课程(假设课程编号为从0到n-1),课程之间有依赖关系,即可能存在两门课程,必须学完其中一门才能学另一门。现在给出m个依赖关系,问能否把所有课程都学完。

注:能同时学习多门课程时总是先学习编号最小的课程。

输入

第一行两个整数n、m(1≤n≤100,0≤m≤n(n−1)),分别表示课程数、依赖关系数;

接下来m行,每行两个整数u、v(0≤u≤n−1,0≤v≤n−1,u≠v),表示必须先学习编号为u的课程才能学习编号为v课程。数据保证不会有重边。

输出

如果能学完所有课程,那么输出一行Yes,然后在第二行输出学习课程编号的顺序,编号之间用空格隔开,行末不允许有多余的空格;如果不能学完所有课程,那么输出一行No,然后在第二行输出不能学习的课程门数。

样例输入 复制

4 5
0 1
0 2
0 3
1 2
3 2

样例输出 复制

Yes
0 1 3 2

提示

对应的依赖关系如下图所示。由于每次选择编号最小的顶点,因此学习顺序为0 1 3 2


来源/分类