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;

}

你可能感兴趣的:(HDU)