//傳送門: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"); }}
新聞熱點
疑難解答