题意:比赛如果a打败b,b打败c那么a就赢了,如果a打败b,b打败c,c打败a则判断不出谁赢。
输入以前者为胜者
#include<cstdio>
#include<string>
#include<iostream>
#include<map>
using namespace std;
map<string,int>all,los;
int main()
{
string str;
int n,i,j;
while(cin>>n,n)
{
all.clear();
los.clear();
for(j=i=0;i<n;i++)
{
cin>>str;
if(!all.count(str)) all.insert(pair<string,int>(str,2*i));
cin>>str;
if(!all.count(str)) all.insert(pair<string,int>(str,2*i+1));
if(!los.count(str)) los.insert(pair<string,int>(str,j++));
}
//只要失败者比所有的人小一那么存在唯一的优胜者
if(all.size()-los.size()==1)
puts("Yes");
else
puts("No");
}
return 0;
}