HDU 2094 产生冠军
题解:利用set的判重功能,直接计算出现的字符串数量,同时记录失败的字符串,如果两者相差1,则有冠军,否则没有:
#include <iostream> #include <string> #include <set> using namespace std; int main() { int n; while(scanf("%d",&n),n){ getchar(); string a,b; set sum; set fail; for(int i=0;i<n;i++){ cin>>a>>b; sum.insert(a); sum.insert(b); fail.insert(b); } if(sum.size()-fail.size()==1)puts("Yes"); else puts("No"); } return 0; }
愿你出走半生,归来仍是少年