观察一下,可以看到其实只要总元素数-失败者==1就可以输出YES了。。。
#include <iostream>
#include <set>
#include <map>
using namespace std;
set <string> lose;
set <string> all;
int main()
{
int n;
string a, b;
while (cin >> n && n){
lose.clear();
all.clear();
for (int i = 0; i < n; i ++){
cin >> a >> b;
all.insert(a);
all.insert(b);
lose.insert(b);
}
int al = all.size(), lo = lose.size();
(al - lo == 1) ? printf("Yes/n"):printf("No/n");
}
return 0;
}