프로그램 명: coci_dosadan
제한시간: 1 초

미코는 친구 슬라브코에세 메시지를 받았다.

유명한 암호학자인 슬라브코는 미코에게 보낼 메시지를 암호화하는 것을 좋아한다. 이번에는 One Time Pad(OTP) 기법을 사용하기로 맘 먹었다. OTP 는 바르게 사용되어지면 뚫을수가 없다는 것을 안다.

그러나 그는 미코가 불가능한 일로 머리가 터지는 것을 원하지 않는다. 그래서 그는 메시지에 약간의 힌트를 주어 보내기로 했다.

미코는 슬라브코의 원문은 단지 소문자로('a' - 'z'), 마침표 '.' 와 공백 ' ' (ASCII 3210). 으로 이루어져 있고, 또한 슬라브코는 키로 숫자 0 ~ 9 를 사용한다 것을 안다.

장고 끝에 그는 원문의 모든 공백의 위치와 마침표의 위치를 알아냈고, 당신에게 이 것을 자동으로 할 수 있는 프로그램을 작성하도록 도움을 요청 했다.

미코는 전에 한 번 접해서 OTP 암호가 어떻게 동작하는지는 안다.

간단한 예시를 보자. 0120123 을 키로 문자열 "abc def" 를 암호화 하기를 원한다.

abc efg 
0120123 
61 62 63 20 65 66 67
30 31 32 30 31 32 33
51 53 51 10 54 54 54
Start ASCII 16 진수 암호 화된 문서

처음 당신은 이 키와 원문을 16 진수 숫자로 변환한다. 다음 당신은 그들의 줄을 맞춘 후 각 쌍에 XOr 연산을 수행한다.

이렇게 해서 만들어지는 나열이 암호화 문서이다.

입력

첫 수는 암호화 된 문서의 문자 수 N 이다.(1 ≤ N ≤ 1000) 다음 라인은 16 진로수 쓰여진 N 개의 정수이고 010 이상 12710 이하인 암호화 문서이다.

출력

출력은 N 문자를 포함 한다. 각각은 원문의 문자를 나타낸다. 만약 원문의 i 번째가 문자이면 , 출력의 i 번째 문자는 대시 - 로 아니면 마침표 . 을 출력해야 한다.

입출력 예

입력

7
51 53 51 10 54 54 54

출력

---.---

입력

7
53 53 51 54 54 51 10

출력

------.
출처:coci

[질/답] [제출 현황] [푼 후(0)]
[ 채 점 ] [홈으로]  [뒤 로]