아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

왕위 계승

면접 대비

시간 제한1초메모리 제한128 MB

요약
N명의 부모 정보가 주어질 때 각 왕위 주장자의 시조 혈통 비율을 계산해 가장 높은 사람의 이름을 출력한다.
난이도

보통10점 중 5점

유형
그래프, DFS, 해시맵, 재귀
정답자
아직 제출이 없습니다

문제

유토피아의 왕이 자손을 남기지 않고 세상을 떠났다. 왕이 후계자를 지명하지 않았기 때문에 왕실 귀족들이 저마다 왕위를 주장하기 시작했다. 유토피아의 법에는 왕의 계승자가 없을 때, 나라를 세운 건국자와 혈통이 가장 가까운 사람이 나라를 다스린다는 조항이 있다.

건국자와 혈통이 가장 가까운 사람은 건국자의 자손이면서 건국자가 아닌 사람의 피가 가장 적게 섞인 사람이다. 모든 사람은 아버지에게서 혈통의 절반을, 어머니에게서 절반을 물려받는다. 건국자의 자녀는 왕가의 피를 12\frac{1}{2} 물려받고, 그 자녀가 왕족이 아닌 사람과 혼인하여 낳은 자녀는 왕가의 피를 14\frac{1}{4} 물려받는다. 이렇게 세대가 내려갈수록 건국자에게서 물려받은 혈통의 비율이 정해진다.

왕위를 주장하는 사람들 중에서 건국자와 혈통이 가장 가까운, 즉 왕가의 피를 가장 많이 물려받은 사람을 찾는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 NN과 MM이 주어진다. (2≤N,M≤502 \le N, M \le 50)

둘째 줄에 유토피아를 세운 건국자의 이름이 주어진다.

다음 NN개의 줄에는 가족 정보가 한 줄에 하나씩 주어진다. 각 줄은 공백으로 구분된 세 개의 이름으로 이루어지며, 첫 번째 이름은 자녀이고 나머지 두 이름은 그 자녀의 두 부모이다.

그다음 MM개의 줄에는 왕위 계승을 주장하는 사람의 이름이 한 줄에 하나씩 주어진다.

모든 이름은 알파벳 소문자로만 이루어진 길이 1 이상 10 이하의 문자열이다. 건국자가 왕위를 주장하는 경우는 없으며, 건국자가 누군가의 자녀로 등장하는 경우도 없다.

출력

첫째 줄에 건국자와 혈통이 가장 가까운 사람의 이름을 출력한다. 답이 항상 유일한 입력만 주어진다.

이 문제의 가족 관계는 성별과 나이를 고려하지 않고 만들었기 때문에 현실적으로는 말이 되지 않는 경우가 나올 수도 있다. 하지만 모든 자녀의 부모 쌍은 유일하며, 자녀가 다시 자기 부모의 조상이 되는 순환은 없고, 한 사람이 두 번 이상 자녀로 등장하지도 않는다.

예제8

  1. 예제 1

    입력
    9 2
    edwardi
    charlesi edwardi diana
    philip charlesi mistress
    wilhelm mary philip
    matthew wilhelm helen
    edwardii charlesi laura
    alice laura charlesi
    helen alice bernard
    henrii edwardii roxane
    charlesii elizabeth henrii
    charlesii
    matthew
    
    예상 출력
    matthew
    
  2. 예제 2

    입력
    4 5
    andrew
    betsy andrew flora
    carol andrew betsy
    dora andrew carol
    elena andrew dora
    carol
    dora
    elena
    flora
    gloria
    
    예상 출력
    elena
    
  3. 예제 3

    입력
    2 2
    king
    alice king queenmum
    bob alice stranger
    alice
    bob
    
    예상 출력
    alice
    
  4. 예제 4

    입력
    2 3
    root
    child root outsider
    grand child mother
    child
    grand
    random
    
    예상 출력
    child
    
  5. 예제 5

    입력
    3 3
    founder
    a founder x
    b a y
    c b z
    a
    b
    c
    
    예상 출력
    a
    
  6. 예제 6

    입력
    3 3
    alpha
    beta alpha ext
    gamma alpha beta
    delta alpha gamma
    beta
    gamma
    delta
    
    예상 출력
    delta
    
  7. 예제 7

    입력
    5 2
    top
    pa top ea
    pb top eb
    gp pa pb
    ca top ec
    gc ca ed
    gp
    gc
    
    예상 출력
    gp
    
  8. 예제 8

    입력
    5 4
    crown
    sa crown oa
    sb crown ob
    ga sa oc
    gb crown sb
    mm ga gb
    gb
    mm
    ga
    sa
    
    예상 출력
    gb