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;
}
posted @ 2014-02-23 14:58  forever97  阅读(129)  评论(0编辑  收藏  举报