您的位置:首页 > 其它

hdu 2094 产生冠军

2015-11-20 22:10 357 查看
题目链接:hdu 2094 产生冠军

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#define maxn 11111
using namespace std;
int in[maxn],n;
int vis[maxn];
int main()
{
string a,b;
while(~scanf("%d",&n),n)
{
map<string,int>mapp;
int cnt  = 0;
fill(vis,vis+maxn,0);
for(int i=0;i<n;i++)
{
cin>>a>>b;
if(!mapp[a]) mapp[a]=++cnt;//cnt表示当前人的标号
if(!mapp[b]) mapp[b]=++cnt;
vis[mapp[b]]=1;//该标号的人失败,则标记为1
}
int sum = 0;
for(int i=1;i<=cnt;i++)  sum+=vis[i];//cnt为总人数,sum为失败过的人数
if(cnt==sum+1) cout<<"Yes"<<endl;//如果失败过的人数等于总人数减一,也就是只有一个人没有失败过
else cout<<"No"<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: