『湖南省队集训』clan

题目

最简单的往往最复杂

题目描述

有这么一个人叫做农民王Q,他有一个家谱,现在他在想自己和上古农民王U到底有多大的关系,关系式中有这么些个亲戚:

“father, mother, son, daughter, husband, wife, brother, sister, grandfather, grandmother, grandson, granddaughter, uncle, aunt, nephew, niece”

中文意思分别是:
“父亲,母亲,儿子,女儿,丈夫,妻子,兄弟,姐妹,爷爷,奶奶,孙子,孙女,叔叔,阿姨,侄儿,侄女”

对于亲戚关系,满足以下几点:

  1. Q的兄弟等同于Q的父亲的或者母亲的儿子(Q自己除外);
  2. Q的爷爷等同于Q的父亲的或者母亲的父亲;
  3. Q的孙子等同于Q的儿子的或者女儿的儿子;
  4. Q的叔叔等同于Q的父亲的或者母亲的兄弟;
  5. Q的侄儿等同于Q的兄弟的或者姐妹的儿子;
  6. 上述规则对于姐妹,奶奶,孙女,阿姨和侄女类似。

血缘关系的定义如下:

  1. Q到Q的父亲,Q的母亲,Q的儿子或者Q的女儿的距离为1;
  2. Q到Q的丈夫(妻子)的距离为0;
  3. Q到U的距离等于在上述规则下推断出的Q到U的最短距离。

由于一条关系会出现很多种情况,所以农民王想知道他跟上古农民王的血缘关系距离究竟有多少种?分别是多少?请你帮帮他好吗?

注明:不会出现的关系包括收养,亲戚间结婚(家族树中无环),离婚,复婚,重婚,同性恋等。

输入数据

第$1$行包括一个字符串表示氏族谱图上的关系式,格式如下:

Q is U’s relation’s relation’s … relation

设关系式中出现的亲戚关系总个数为$l$。

输出数据

第$1$行一个整数$c$,表示一共有多少种情况。

第$2$行$c$个数,表示每种情况的距离,空格隔开,按升序输出。

数据范围

对于$10\%$的数据,$l \leq 10$;

对于$30\%$的数据,$l \leq 30$;

对于另外$20\%$的数据, 只包含“父亲,母亲,儿子,女儿,丈夫,妻子,兄弟,姐妹”关系,且兄弟姐妹关系个数不超过$20$个;

对于$100\%$的数据,$0 \leq l \leq 100$,不保证一定存在一种情况满足关系式。

文章目录
  1. 1. 题目
    1. 1.1. 题目描述
    2. 1.2. 输入数据
    3. 1.3. 输出数据
    4. 1.4. 数据范围
,