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 }