SZ#G6MT06. 【GESP强化 六级】家族关系

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 11438 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 入门 上传者: 标签>GESPGESP强化C++c++编程题多叉树有根树父指针祖先关系

题目描述

刘老师整理了一份只记录母女关系的家族档案,并想查询其中两位成员之间的关系。每条记录中的两个姓名 XXYY 表示 XXYY 的母亲。

需要按照下面的规则判断待查询的两位成员之间的关系:

  • 如果两人有同一位母亲,输出 SIBLINGS
  • 如果一方是另一方的母系直系祖先,根据相隔的代数输出 mothergrand-mothergreat-grand-mother 等关系;
  • 如果一方是另一方某位母系祖先的女儿,根据相隔的代数输出 auntgreat-aunt 等关系;
  • 如果两人拥有共同的母系祖先,但不属于以上关系,输出 COUSINS
  • 如果找不到共同的母系祖先,输出 NOT RELATED

输出祖先或长辈关系时,姓名和关系词必须按照输出格式组成完整句子。

输入格式

第一行输入一个整数 NN 和两个字符串 A,BA,B,分别表示关系记录数以及需要查询的两位成员姓名。

接下来 NN 行,每行输入两个字符串 X,YX,Y,表示 XXYY 的母亲。

输出格式

按照题目规定的英文格式输出 AABB 的关系。

直系祖先或姨辈关系输出为 祖先或长辈姓名 is the 关系词 of 后代姓名;其他情况输出对应的全大写关系词。

2 PC PA
PA PB
PB PC
PA is the grand-mother of PC
4 PC PE
PA PB
PB PD
PA PE
PB PC
PE is the aunt of PC
2 PB PA
PB PC
PA PB
PA is the mother of PB

数据范围与约定

  • 1N1001\le N\le100
  • 姓名只含大写字母且长度不超过 1010
  • 每人至多有一位母亲,记录中没有环