水水的题
从题干中知道胜利者是不能够被打败的,同时其他人要么被冠军打败,要么被冠军打败的打败,以此类推,如果有n个人,至少要有n-1个不同的被打败的人,因为集合中的元素不会重复,重复元素不会在集合中出现,所以我们只用将所有人加入集合,将败者加入另一个集合,两个集合元素个数差是否为1即可。
#include<bits/stdc++.h>
using namespace std;
int main(){
set <string> A, B;
string s1, s2;
int n;
while(cin >> n && n){
A.clear(); B.clear();
for(int i=0; i<n; ++i){
cin >> s1 >> s2;
A.insert(s1); A.insert(s2);
B.insert(s2);
}
if(A.size() - B.size() == 1)
cout << "Yes" << endl;
else
cout << "No" << endl;
}
}