首页 > 学院 > 开发设计 > 正文

HDU-2094-产生冠军(简单模拟)

2019-11-06 06:48:19
字体:
来源:转载
供稿:网友
//传送门:http://acm.hdu.edu.cn/showPRoblem.php?pid=2094#include <queue>#include <functional>#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <stack>#include <vector>#include <set>#include <map>#include <string>#include <cmath>#include <cstdlib>#include <ctime>#include <assert.h>using namespace std;#define N 1005//思路: 有且仅有一个胜者不曾败过,则其为冠军string s1[N],s2[N];int main(){   int  n;   while(scanf("%d",&n),n){      for(int i=0;i<n;i++){         cin>>s1[i]>>s2[i];      }      int sum=0;      for(int i=0;i<n;i++){          //遍历胜者         bool flag = 0;         for(int j=i+1;j<n;j++){     //后面是否有重复的            if(s1[i]==s1[j]){        //有则跳过               flag = 1;               break;            }         }         if(flag) continue;         for(int j=0;j<n;j++){       //该胜者是否在败者中出现            if(s1[i]==s2[j]){        //若出现了,则不计算               flag = 1;               break;            }         }         if(!flag) sum++;            //该胜者未曾败过      }      if(sum==1) printf("Yes/n");    //有且仅有一个胜者未曾败过      else printf("No/n");   }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表