hdu 2094 产生冠军(STL,set)

时间:2022-03-05 20:25:46

题目

//把所有的出现的名字开始默认都为冠军(1),然后输了的置为0,表示不为冠军,最后统计不为0的,

//当有且只有一个不为0的,这个就为冠军,否则,不能产生冠军.

//以上思路来自别人的博客。。

//set可以去重,所以这里用了set

//set可以去重,并且自动排序
//数set元素个数要用 s.size() 的啊
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<string>
#include<math.h>
#include<set>
using namespace std; //#define IN freopen("c:\\Users\\nit\\desktop\\input.txt", "r", stdin)
//#define OUT freopen("c:\\Users\\nit\\desktop\\output.txt", "w", stdout)
//int gcd(int a,int b){return b==0?a:gcd(b,a%b);} int main()
{
int n,i;
string a,b;
set<string>s1;
set<string>s2;
while(scanf("%d",&n),n)
{
s1.clear();
s2.clear();
for(i=;i<n;i++)
{
cin>>a>>b;
s1.insert(a);//
s1.insert(b);//把所有的都放在s1
s2.insert(b);//把输过的都放在s2
}
if(s1.size()- s2.size() == )//比较s1和s2的不重复元素个数
printf("Yes\n");
else
printf("No\n");
}
return ;
}