한 단어는 1~10개의 대문자(A-Z)들로 이루어진 문자열이다. 한 문장은 공백으로 구분된 단어들로 이루어졌다.
제 1 공개키는 최대 한 번만 사용된 단어들로 되어있다.
제 2 공개키는 제 1 공개키의 단어들을 재배치하여 만들어진다.
평문(암호화 되지 않은 문장)은 제 1 공개키와 같이 여러 단어들로 되어있지만, 제 1 공개키와 다르게 각 단어들은 중복이 가능하다.
암호문(암호화 된 문장)은 평문을 제 2 공개키를 만든 규칙의 반대로 재배치하여 만들어진다.
주어진 2개의 공개키와 암호문으로 평문을 복구하라.
tmp
를 굳이 sorted
로 받을 필요는 없는 것 같다.from sys import stdin
from collections import defaultdict
t = int(stdin.readline())
for _ in range(t):
n = int(stdin.readline())
oneKey = list(map(str, stdin.readline().split()))
twoKey = list(map(str, stdin.readline().split()))
message = list(map(str, stdin.readline().split()))
dic = defaultdict(int)
for i in range(n):
dic[i] = twoKey.index(oneKey[i])
rev_dic = defaultdict(int)
for a, b in dic.items():
rev_dic[b] = a
tmp = sorted(rev_dic.items())
res = ['']*n
for a, b in tmp:
res[b] = message[a]
print(*res)