만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

가계도

면접 대비

시간 제한2초메모리 제한512 MB

요약
어미와 자식 쌍이 주어질 때 두 소의 관계를 형제, 직계 조상, 이모, 사촌, 무관 중 하나로 정해진 규칙 순서에 따라 판별한다.
난이도

보통10점 중 5점

유형
그래프, DFS, 트리, 구현
정답자
아직 제출이 없습니다

문제

농부 존은 여러 세대에 걸쳐 물려받은 가족 농장을 운영한다. 농장의 소들도 같은 농장에서 몇 세대를 이어 왔다. 존은 오래된 기록을 뒤지다가 지금 기르는 소들이 서로 어떤 사이인지 궁금해졌다. 존을 도와 지정된 두 소의 관계를 알아내자.

입력

첫째 줄에 NN (1≤N≤1001 \leq N \leq 100)과 소 두 마리의 이름이 주어진다. 소 이름은 길이가 10 이하인 대문자 알파벳(A…ZA \ldots Z) 문자열이다. 존이 궁금해하는 것은 이 줄에 적힌 두 소의 관계다.

다음 NN개의 줄에는 각각 소 이름 XX와 YY가 주어진다. XX가 YY의 어미라는 뜻이다.

출력

첫째 줄에 적힌 두 소의 관계를 한 줄로 출력한다. 아래 설명에서는 두 소를 각각 BESSIE와 ELSIE라고 부른다. 가능한 관계는 다음과 같고, 위에서부터 처음으로 들어맞는 규칙 하나만 적용한다.

  • BESSIE와 ELSIE의 어미가 같으면 SIBLINGS를 출력한다.
  • BESSIE가 ELSIE의 직계 자손일 수 있다. ELSIE가 BESSIE의 어미, 할머니, 증조할머니, 고조할머니 등에 해당하는 경우다. 이때는 ELSIE is the (관계) of BESSIE 형식으로 출력한다. (관계) 자리에는 한 세대 위면 mother, 두 세대 위면 grand-mother, 세 세대 위면 great-grand-mother를 쓰고, 한 세대 더 올라갈 때마다 great-를 하나씩 더 붙인다.
  • ELSIE가 BESSIE의 조상의 자식이고 ELSIE 자신은 BESSIE의 조상도 자매도 아니면, ELSIE는 BESSIE의 이모다. ELSIE가 BESSIE의 할머니의 자식이면 ELSIE is the aunt of BESSIE, 증조할머니의 자식이면 ELSIE is the great-aunt of BESSIE, 고조할머니의 자식이면 ELSIE is the great-great-aunt of BESSIE를 출력하고, 그 위로도 같은 방식으로 이어진다.
  • 두 소가 그 밖의 방식으로 이어져 있으면, 즉 공통 조상이 있으면 사촌이므로 COUSINS를 출력한다.
  • 두 소에게 공통 조상이 없고 어느 쪽도 다른 쪽의 직계 자손이 아니면 NOT RELATED를 출력한다.

아래 그림은 위 관계를 정리한 것이다. 이 문제에서 다루는 관계는 이것이 전부다. niece(자매의 딸) 같은 관계는 따로 필요 없다. BESSIE가 ELSIE의 niece이면 ELSIE가 BESSIE의 aunt이기 때문이다.

예제3

  1. 예제 1

    입력
    7 AA BB
    MOTHER AA
    GGMOTHER BB
    MOTHER SISTER
    GMOTHER MOTHER
    GMOTHER AUNT
    AUNT COUSIN
    GGMOTHER GMOTHER
    
    예상 출력
    BB is the great-aunt of AA
    
  2. 예제 2

    입력
    3 BESSIE ELSIE
    MILDRED BESSIE
    MILDRED ELSIE
    MILDRED GRETCHEN
    
    예상 출력
    SIBLINGS
    
  3. 예제 3

    입력
    2 BESSIE MILDRED
    MILDRED BESSIE
    BESSIE DAISY
    
    예상 출력
    MILDRED is the mother of BESSIE