심심한 준규

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

요약
소문자, 마침표, 공백으로 된 평문과 숫자 키를 XOR한 값이 주어질 때 각 위치가 문자였는지 마침표/공백이었는지 판별합니다.
난이도

보통10점 중 6점

유형
비트 연산, 완전 탐색, 문자열
정답자
아직 제출이 없습니다

문제

해빈이는 준규에게 암호화된 메시지를 받았다. 준규는 이번에 One-Time Pad(OTP) 방식을 사용했다. OTP를 올바르게 사용하면 원문 전체를 복원할 수 없지만, 준규는 해빈이가 적어도 공백과 온점의 위치는 알아낼 수 있도록 충분한 정보를 남겼다.

준규가 쓰는 원문에는 영소문자, 온점(.), 공백(ASCII 코드 32)만 등장한다. 키에는 문자 '0'부터 '9'까지의 숫자만 등장한다. 원문과 키의 각 문자를 ASCII 코드로 바꾼 뒤 같은 위치끼리 XOR 연산한 값이 암호문이 된다.

예를 들어 원문 abc efg와 키 0120123을 사용하면 다음과 같이 암호화된다.

원문과 키ASCII 16진수암호문
```
abc efg
0120123
``````
61 62 63 20 65 66 67
30 31 32 30 31 32 33
``````
51 53 51 10 54 54 54

암호문이 주어졌을 때, 원문의 각 위치가 영소문자인지 아니면 온점 또는 공백인지 판별하라.

입력

첫째 줄에 암호화된 메시지의 길이 N이 주어진다. (1 <= N <= 1000)

둘째 줄에는 암호화된 메시지를 이루는 N개의 정수가 공백으로 구분되어 주어진다. 각 정수는 10진수로 표현되며 0 이상 127 이하이다.

출력

원문의 각 위치에 대해, 해당 문자가 영소문자라면 -를 출력하고 온점 또는 공백이라면 .을 출력한다.

총 N개의 문자를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    7
    51 53 51 10 54 54 54
    
    예상 출력
    ---.---
    
  2. 예제 2

    입력
    7
    53 53 51 54 54 51 10
    
    예상 출력
    ------.