说明:这个就是要找到一个胜利的人,并且是有且只有一个,首先,如果这个人的名字出现在了右边,那么肯就是不可能是胜利的人。那么如果这个人如果硬了多次,那么就算一次的,所以我们最好要找的就是有多个人没有输过,并不是一共赢了多少次的人,想一下,如果有两个人的名字没有出现再lose里面那么就是有两个人没有输的,那就不算,但是如果所有赢的人的名字都出现在了输的人的名字里面,那么就算没有赢的,在输的人的名单里面的人是肯定不会赢的。所以代码双重循环
#include<stdio.h>
#include<string.h>
char win[1010][20],lose[1010][20];
int visit[1010];
int main(){
int n;
while(~scanf("%d",&n),n){
int sum=0;
for(int i=0;i<n;i++){
scanf("%s%s",win[i],lose[i]);
visit[i]=1;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(strcmp(win[i],lose[j])==0)
visit[i]=0;
if(i!=j&&strcmp(win[i],win[j])==0)
visit[j]=0;
}
sum+=visit[i];
}
if(sum==1)
printf("Yes\n");
else printf("No\n");
}
return 0;
}