만드는 중입니다

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

번역

면접 대비

시간 제한4초메모리 제한1024 MB

요약
단어 쌍으로 된 사전과 본문이 주어졌을 때, 본문을 A에서 B로, 다시 A로 번역하는 과정을 결과가 바뀌지 않을 때까지 반복한 텍스트를 출력합니다.
난이도

보통10점 중 4점

유형
해시맵, 문자열
정답자
아직 제출이 없습니다

문제

간단한 번역 프로그램은 두 언어 AA와 BB 사이의 글을 사전을 바탕으로 단어 단위로 번역한다. 번역할 단어가 나오면 사전에서 그 단어가 처음 나타나는 항목을 찾아 그대로 번역한다.

이 프로그램으로 AA어 글을 BB어로 번역한 뒤 다시 AA어로 번역하면 원래 글이 그대로 돌아오지 않을 수 있다. 이 문제에서는 글이 더 이상 바뀌지 않을 때까지 이 과정을 반복한다. 구체적으로 다음과 같다.

  1. AA어 글 (단어들의 나열) aa를 정한다.
  2. aa를 AA어에서 BB어로 번역해 새 글 bb를 만든다.
  3. bb를 BB어에서 AA어로 번역해 새 글 a′a'를 만든다.
  4. a≠a′a \neq a'이면 a′a'로 1번부터 다시 시작한다. 그렇지 않으면 번역이 끝난다.

사전과 글이 주어질 때, 위 알고리즘이 만든 글을 출력하라.

입력

첫 줄에 사전에 있는 단어 쌍의 개수 NN (1≤N≤50 0001 \leq N \leq 50\,000)이 주어진다.

이어서 NN줄에 각각 두 단어가 주어진다. 단어는 a-z 소문자만으로 이루어지며 공백을 포함하지 않는다. 단어 길이는 최대 20이다. 첫 번째 단어는 AA어, 두 번째 단어는 BB어이다.

다음 줄에는 번역할 글에 포함된 단어의 개수 MM (1≤M≤100 0001 \leq M \leq 100\,000)이 주어진다. 마지막 줄에는 공백으로 구분된 단어들로 이루어진 번역할 글이 주어진다. 글에 있는 모든 단어는 사전에 있다고 보장된다.

출력

알고리즘이 끝났을 때 만들어진 글을 한 줄에 출력한다.

힌트

알고리즘은 다음 순서로 문장을 번역한다.

  1. programmering ar valdigt roligt
  2. programmering ar valdigt skoj
  3. programmering ar valdigt kul

예제1

  1. 예제 1

    입력
    8
    programmering programming
    ar is
    valdigt very
    kul fun
    skoj fun
    mycket very
    skoj amusing
    roligt amusing
    4
    programmering ar mycket roligt
    
    예상 출력
    programmering ar valdigt kul