1 条题解
-
0
一、思路分析
先去找第一头奶牛的祖上,若直接没有了,就输出"NOT RELATED"。若还剩下,就去找他们俩个的祖先,用一个变量去存下隔了几代,然后输出,若隔了超过两代,就用 for 循环输出 个"great-",最后输出是 aunt 还是 mother 即可。
二、构造代码
#include<bits/stdc++.h> using namespace std; int n,ans=0; string x,y,v,b[105],a[105]; string dfs(string v){ for(int i=0;i<n;i++){ if(v==b[i]) return a[i]; } return ""; } int main(){ cin>>n>>x>>y; for(int i=0;i<n;i++) cin>>a[i]>>b[i]; v=x; while(v!=""){ string t=y; int cnt=0,flag=-1; while(t!=""){ if(v==t){ flag=cnt; break; } t=dfs(t); cnt++; } if(flag!=-1) break; v=dfs(v); ans++; } if(v==""){ cout<<"NOT RELATED"<<endl; return 0; } int cnt=0,flag=-1; string t=y; while(t!=""){ if(v==t){ flag=cnt; break; } t=dfs(t); cnt++; } if(flag==1&&ans==1) cout<<"SIBLINGS"<<endl; else if(flag>1&&ans>1) cout<<"COUSINS"<<endl; else{ if(flag>ans){ swap(x,y); swap(flag,ans); } cout<<y<<" is the "; for(int i=0;i<ans-2;i++) cout<<"great-"; if(ans>1&&!flag) cout<<"grand-"; if(!flag) cout<<"mother"; else cout<<"aunt"; cout<<" of "<<x<<endl; } return 0; }
- 1
信息
- ID
- 6789
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 20
- 已通过
- 5
- 上传者