#include<bits/stdc++.h>
using namespace std;
int n,len,d[210][2],f[210][2];
string name[210];
vector<int>sons[210];
int search(string s){
for(int i=1;i<=len;i++)
if(name[i]==s)
return i;
name[++len]=s;
return len;
}
void dp(int u){
if(sons[u].empty()){
d[u][0]=0;
f[u][0]=1;
d[u][1]=1;
f[u][1]=1;
return;
}
int ok1=1,ok2=1;
d[u][1]=1;
d[u][0]=0;
for(int i=0;i<sons[u].size();i++){
int v=sons[u][i];
dp(v);
d[u][1]+=d[v][0];
if(f[v][0]==0)ok1=0;
int wa=d[v][1]>d[v][0];
d[u][0]+=d[v][wa];
if(d[v][0]==d[v][1]||f[v][wa]==0)ok2=0;
}
f[u][1]=ok1;
f[u][0]=ok2;
}
int main(){
int i,j,t1,t2;
string s1,s2;
while(scanf("%d",&n)&&n){
for(i=1;i<=n;i++)
sons[i].clear();
len=1;
cin>>s1;
name[1]=s1;
for(i=1;i<n;i++){
cin>>s1>>s2;
t1=search(s1);
t2=search(s2);
sons[t2].push_back(t1);
}
dp(1);
int wa=d[1][1]>d[1][0];
printf("%d %s\n",d[1][wa],f[1][wa]&&d[1][1]!=d[1][0]?"Yes":"No");
}
return 0;
}
UVA 1220 Party at Hali-Bula - ACM/ICPC Tehran 2006
最新推荐文章于 2021-05-11 19:08:46 发布