Problem: [Usaco2018 Open]Family Tree

Problem: [Usaco2018 Open]Family Tree

Time Limit: 1 Sec Memory Limit: 128 MB

Description

Farmer John拥有一个传承数代的家族经营的农场,其中的奶牛的根源同样也可以在这个农场中追溯数代。通过检索古老的记录,Farmer John好奇于现在的这群奶牛互相之间是什么关系。请帮帮他!

Input

输入的第一行包含NN(1≤N≤100),之后是两头奶牛的名字。
每头奶牛的名字都是由至多10个大写字母(A…Z)组成的字符串。Farmer John好奇于这行输入中这两头奶牛之间的关系。
接下来的NN行,每行包含两头奶牛的名字X和Y,表示X是Y的母亲。

Output

输出包含一行,表示输入第一行指定的两头奶牛之间的关系
(简单起见,在下面的例子中,将这两头奶牛称为BESSIE和ELSIE)。
下面是可能出现的不同种类的关系:
如果BESSIE和ELSIE的母亲是同一头奶牛,输出“SIBLINGS”。
BESSIE可能是ELSIE的直系后代,也就是说ELSIE是BESSIE的母亲(mother),
外祖母(grand-mother),外曾外祖母(great-grand-mother),外曾外曾外祖母(great-great-grand-mother),等等。
如果是这种情况,输出“ELSIE is the (relation) of BESSIE",其中(relation)是适当的关系,
比如“great-great-grand-mother”。
如果ELSIE不是BESSIE的某个祖先或姐妹,但是是BESSIE的某个祖先的孩子,
那么ELSIE就是BESSIE的姨母(aunt)。
(译者注:英语原题在这里表述有误,供题人已作出声明。)
如果ELSIE是BESSIE的外祖母的孩子,输出“ELSIE is the aunt of BESSIE”;
如果ELSIE是BESSIE的外曾外祖母的孩子,输出“ELSIE is the great-aunt of BESSIE”;
如果ELSIE是BESSIE的外曾外曾外祖母的孩子,输出“ELSIE is the great-great-aunt of BESSIE”;以此类推。
如果BESSIE和ELSIE有任何其他的亲戚关系(也就是说,她们有共同的祖先),她们就是表姐妹,输出“COUSINS”。
如果BESSIE和ELSIE既没有共同的祖先,其中任何一头也不是另一头的直系后代,输出“NOT RELATED”。
下图描述了上述关系,你只需考虑这些关系。
观察到有一些像是“甥女(niece)”(姊妹的女儿)的关系是不必要的,这是由于如果BESSIE是ELSIE的甥女,那么ELSIE就是BESSIE的姨母。
在这里插入图片描述

Sample Input

7 AA BB
MOTHER AA
GGMOTHER BB
MOTHER SISTER
GMOTHER MOTHER
GMOTHER AUNT
AUNT COUSIN
GGMOTHER GMOTHER

Sample Output

BB is the great-aunt of AA
代码如下

#include <iostream>
#include <algorithm>
#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值