题目
最简单的往往最复杂
题目描述
有这么一个人叫做农民王Q,他有一个家谱,现在他在想自己和上古农民王U到底有多大的关系,关系式中有这么些个亲戚:
“father, mother, son, daughter, husband, wife, brother, sister, grandfather, grandmother, grandson, granddaughter, uncle, aunt, nephew, niece”
中文意思分别是:
“父亲,母亲,儿子,女儿,丈夫,妻子,兄弟,姐妹,爷爷,奶奶,孙子,孙女,叔叔,阿姨,侄儿,侄女”
对于亲戚关系,满足以下几点:
- Q的兄弟等同于Q的父亲的或者母亲的儿子(Q自己除外);
- Q的爷爷等同于Q的父亲的或者母亲的父亲;
- Q的孙子等同于Q的儿子的或者女儿的儿子;
- Q的叔叔等同于Q的父亲的或者母亲的兄弟;
- Q的侄儿等同于Q的兄弟的或者姐妹的儿子;
- 上述规则对于姐妹,奶奶,孙女,阿姨和侄女类似。
血缘关系的定义如下:
- Q到Q的父亲,Q的母亲,Q的儿子或者Q的女儿的距离为1;
- Q到Q的丈夫(妻子)的距离为0;
- 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$,不保证一定存在一种情况满足关系式。