题目描述
有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。
球赛的规则如下:
- 如果 `A` 打败了 `B`,`B` 又打败了 `C`,而 `A` 与 `C` 之间没有进行过比赛,那么就认定,`A` 一定能打败 `C`。
- 如果 `A` 打败了 `B`,`B` 又打败了 `C`,而且 `C` 又打败了 `A`,那么 `A`、`B`、`C` 三者都不可能成为冠军。
根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。
输入格式
多组数据,请处理到 $n=0$ 为止。
每组数据以一个整数 $n\ (n\lt 1000)$ 开头,后跟 $n$ 对选手的比赛结果,比赛结果以一对选手名字(中间隔一空格)表示前者战胜后者。
输出格式
对于每组数据,若你判断出产生了冠军,则在一行中输出 `Yes`,否则在一行中输出 `No`。
样例输入 #1
3
Alice Bob
Smith John
Alice Smith
5
a c
c d
d e
b e
a d
0