QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#21047. Arbre généalogique

Statistics

Farmer John possède une ferme familiale transmise sur plusieurs générations, et les origines de ses vaches remontent aussi à plusieurs générations sur cette ferme. En consultant d’anciens registres, il veut connaître les liens entre les vaches actuelles. Aidez-le !

Entrée

Première ligne : $N$ ($1 \leq N \leq 100$) puis deux noms de vaches. Chaque nom est une chaîne d’au plus $10$ majuscules ($A \ldots Z$). Il veut connaître leur lien.

Les $N$ lignes suivantes contiennent $X$ et $Y$, indiquant que $X$ est la mère de $Y$.

Sortie

Affichez une ligne indiquant le lien entre les deux vaches de la première ligne (appelées BESSIE et ELSIE ci-dessous par simplicité). Types possibles :

  • Si elles ont la même mère, affichez SIBLINGS.

  • BESSIE peut descendre directement d’ELSIE, qui est sa mère, grand-mère, arrière-grand-mère, arrière-arrière-grand-mère, etc. Affichez ELSIE is the (relation) of BESSIE, où (relation) est le lien adapté, par exemple great-great-grand-mother.

  • Si ELSIE est l’enfant d’un ancêtre de BESSIE (sans être elle-même ancêtre ou sœur), elle est sa tante. Enfant de sa grand-mère : ELSIE is the aunt of BESSIE; de son arrière-grand-mère : ELSIE is the great-aunt of BESSIE; de son arrière-arrière-grand-mère : ELSIE is the great-great-aunt of BESSIE, et ainsi de suite.

  • Si elles sont liées autrement (ancêtre commun), ce sont des cousines : affichez COUSINS.

  • Sans ancêtre commun, ou si aucune ne descend directement de l’autre, affichez NOT RELATED.

Le schéma illustre les seuls liens à considérer. «Nièce» (fille d’une sœur) est inutile : si BESSIE est la nièce d’ELSIE, ELSIE est sa tante.

fig_familytree_bronze_open18.png

Exemples

Entrée 1

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

Sortie 1

BB is the great-aunt of AA

Auteur du problème : Brian Dean

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.