/*
本來要用並查集的,感覺是並查集的題,但是無限WA。。。。。
後來看網上才發現,如此的水,,,,
只要沒有輸過的人數==1,就可以輸出Yes了,否則No
2013-04-23
*/
[cpp]
#include"stdio.h"
#include"string.h"
int main()
{
int n;
int ans;
int i,j,k;
int count[1001];
char map[1001][20];
char s1[1001],s2[20];
while(scanf("%d",&n)!=-1)
{
if(!n)break;
memset(count,0,sizeof(count));
k=0;
for(i=0;i<n;i++)
{
scanf("%s%s",s1,s2);
for(j=0;j<k;j++)
if(strcmp(s1,map[j])==0)break;
if(j==k)
{
strcpy(map[k],s1);
k++;
}
for(j=0;j<k;j++)
if(strcmp(s2,map[j])==0)break;
if(j==k)
{
strcpy(map[k],s2);
k++;
}
count[j]=1;
}
ans=0;
for(i=0;i<k;i++)
if(count[i]==0)ans++;
if(ans==1)printf("Yes\n");
else printf("No\n");
}
return 0;
}
#include"stdio.h"
#include"string.h"
int main()
{
int n;
int ans;
int i,j,k;
int count[1001];
char map[1001][20];
char s1[1001],s2[20];
while(scanf("%d",&n)!=-1)
{
if(!n)break;
memset(count,0,sizeof(count));
k=0;
for(i=0;i<n;i++)
{
scanf("%s%s",s1,s2);
for(j=0;j<k;j++)
if(strcmp(s1,map[j])==0)break;
if(j==k)
{
strcpy(map[k],s1);
k++;
}
for(j=0;j<k;j++)
if(strcmp(s2,map[j])==0)break;
if(j==k)
{
strcpy(map[k],s2);
k++;
}
count[j]=1;
}
ans=0;
for(i=0;i<k;i++)
if(count[i]==0)ans++;
if(ans==1)printf("Yes\n");
else printf("No\n");
}
return 0;
}