#C1628. J14 例题-2 合不合法

J14 例题-2 合不合法

J14 例题-2 合不合法

题目描述

ACM-DIY\text{ACM-DIY} 是一个大型的 QQ\text{QQ} 群,许多优秀的 ACM\text{ACM} 人聚集在一起。它是如此的和谐,就像一个大家庭。每天都有很多 "圣牛 "如 HH\text{HH}hh\text{hh}AC\text{AC}ZT\text{ZT}lcc\text{lcc}BF\text{BF}Qinz\text{Qinz} 等在线聊天,交流他们的想法。当有人遇到问题时,许多像 Lost\text{Lost} 这样的热心肠的牛人就会来帮忙。然后被帮助的人就会称呼 Lost\text{Lost} 为 "师父", Lost\text{Lost} 就会有一个漂亮的 "徒弟"。渐渐地,有了很多对 "师父和徒弟"。但是问题出现了:有太多的师父和太多的徒弟,我们怎么能知道这是否合法?

我们都知道,一个师父可以有很多徒弟,一个徒弟也可以有很多师父,这都是合法的。然而,有些牛人却不那么老实,他们的关系是非法的。就拿HH\text{HH} 和三仙来说, HH\text{HH} 是三仙的师父,同时三仙也是 HH\text{HH} 的师父,这就很不合法了!为了避免这种情况,请帮助我们判断他们的关系是否合法。

请注意,"师父和徒弟 "的关系是传递性的。这意味着,如果 AABB 的师父,BBCC 的师父,那么A就是 CC 的师父。

输入格式

输入由几个测试样例组成。

对于每个样例,第一行包含两个整数,NN(待测成员)和 MM(待测关系)。然后是 MM 行,每行包含一对(x,y)(x,y),表示 xxyy 的主人,yyxx 的助手。输入以 N=0N=0 结束。 为了简单起见,我们给每个人一个编号( 0,1,2,...,N10,1,2,...,N-1)。我们使用他们的编号而不是他们的名字。

输出格式

对于每个测试案例,在一行中打印出对混乱关系的判断。 如果是合法的,输出 "YES",否则输出 "NO"。

样例输入

3 2
0 1
1 2
2 2
0 1
1 0
0 0

样例输出

YES
NO

样例分析

如上所述。

数据范围 对于 100%100\% 的数据:2N,M1002 \le N, M \le 100