hdu 2094 产生冠军

题目:

http://acm.hdu.edu.cn/showproblem.php?pid=2094

产生冠军的前提是有且只有一个人赢(貌似是废话)......

源代码:

 1 #include <iostream>
 2 #include<stdio.h>
 3 #include<cstring>
 4 using namespace std;
 5 char temp1[30],temp2[30];
 6 char topo[2005][30];
 7 int win[2005];//记录输赢,-1表示赢,0表示输
 8 int main()
 9 {
10    // freopen("in.txt","r",stdin);
11     //freopen("out.txt","w",stdout);
12    int n,flag1,flag2,ans;
13    while(scanf("%d",&n)){
14      if(n==0) break;
15      int count=0;
16      memset(win,-1,sizeof(win));
17      for(int i=0;i<n;i++){
18        scanf("%s %s",temp1,temp2);
19         flag1=flag2=0;
20        for(int j=0;j<count;j++){
21          if(strcmp(topo[j],temp1)==0)
22            flag1=1;  //当前选手之前没出现过
23          if(strcmp(topo[j],temp2)==0){
24            flag2=1;
25            win[j]=0;
26          }
27        }
28        if(flag1==0)
29          strcpy(topo[count++],temp1);
30        if(flag2==0){
31          win[count]=0;
32          strcpy(topo[count++],temp2);
33        }
34      }
35    
38        ans=0;
39        for(int i=0;i<count;i++){
40          if(win[i]==-1)
41            ans++;
42        }
44       if(ans==1)printf("Yes\n");
45       else printf("No\n");
46    }
47     return 0;
48 }

 

posted @ 2013-08-12 17:21  小の泽  阅读(143)  评论(0编辑  收藏  举报