가계도

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

보통5그래프DFS트리구현면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

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

입력

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

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

출력

첫째 줄에 적힌 두 소의 관계를 한 줄로 출력한다. 아래 설명에서는 두 소를 각각 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이기 때문이다.