번역
면접 대비시간 제한4초메모리 제한1024 MB
단어 쌍으로 된 사전과 본문이 주어졌을 때, 본문을 A에서 B로, 다시 A로 번역하는 과정을 결과가 바뀌지 않을 때까지 반복한 텍스트를 출력합니다.
문제
간단한 번역 프로그램은 두 언어 와 사이의 글을 사전을 바탕으로 단어 단위로 번역한다. 번역할 단어가 나오면 사전에서 그 단어가 처음 나타나는 항목을 찾아 그대로 번역한다.
이 프로그램으로 어 글을 어로 번역한 뒤 다시 어로 번역하면 원래 글이 그대로 돌아오지 않을 수 있다. 이 문제에서는 글이 더 이상 바뀌지 않을 때까지 이 과정을 반복한다. 구체적으로 다음과 같다.
- 어 글 (단어들의 나열) 를 정한다.
- 를 어에서 어로 번역해 새 글 를 만든다.
- 를 어에서 어로 번역해 새 글 를 만든다.
- 이면 로 1번부터 다시 시작한다. 그렇지 않으면 번역이 끝난다.
사전과 글이 주어질 때, 위 알고리즘이 만든 글을 출력하라.
입력
첫 줄에 사전에 있는 단어 쌍의 개수 ()이 주어진다.
이어서 줄에 각각 두 단어가 주어진다. 단어는 a-z 소문자만으로 이루어지며 공백을 포함하지 않는다. 단어 길이는 최대 20이다. 첫 번째 단어는 어, 두 번째 단어는 어이다.
다음 줄에는 번역할 글에 포함된 단어의 개수 ()이 주어진다. 마지막 줄에는 공백으로 구분된 단어들로 이루어진 번역할 글이 주어진다. 글에 있는 모든 단어는 사전에 있다고 보장된다.
출력
알고리즘이 끝났을 때 만들어진 글을 한 줄에 출력한다.
힌트
알고리즘은 다음 순서로 문장을 번역한다.
programmering ar valdigt roligtprogrammering ar valdigt skojprogrammering ar valdigt kul