만드는 중입니다

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

Encryptastrophy

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

요약
각 암호문 글자가 현재 평문 글자와 바로 앞 평문 글자의 합을 26으로 나눈 나머지입니다. 마지막 평문 글자를 알 때 전체 평문을 복원합니다.
난이도

쉬움10점 중 2점

유형
문자열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

앨리스와 밥은 서로에게 푹 빠져 있다. 수업 중에도 서로 메시지를 자주 주고받는데, 둘만 그 메시지를 읽을 수 있도록 둘만의 암호 방식을 만들었다. 숨기는 것만으로도 안전하다는 말이 정말 맞을까?

각 알파벳 a-z를 0부터 25까지의 숫자에 대응시킨다. 암호화 함수를 EE, 복호화 함수를 DD로 하는 모듈러 덧셈 암호를 쓴다:

E(k,p)=p+kmod  26E(k, p) = p + k \mod 26

D(k,c)=c−kmod  26D(k, c) = c - k \mod 26

ci=E(ki,pi)c_i = E(k_i, p_i)

pi=D(ki,ci)p_i = D(k_i, c_i)

여기서 pp는 평문, cc는 암호문, kk는 키이다.

긴 키를 보내지 않으려고 키를 다음과 같이 정한다.

ki=pi−1k_i = p_{i-1}

k0k_0은 밥과 앨리스가 미리 정해 둔다.

둘은 이 방식이면 안전하다고 믿고, 아무 걱정 없이 하루 종일 대화를 나눈다.

이브가 둘을 몰래 지켜보고 있다. 둘이 메시지를 보낼 때마다 그 마지막 글자를 주워 둔다. 그녀는 이 메시지들이 무슨 내용인지 알아내려 한다.

입력

  • 정수 하나가 적힌 한 줄: 1≤n≤1031 \leq n \leq 10^3, 암호문 문자열의 길이.
  • 암호문 문자열이 적힌 한 줄.
  • 평문 문자열의 마지막 글자가 적힌 한 줄.

출력

평문 문자열.

예제2

  1. 예제 1

    입력
    8
    ftzjzcmi
    u
    
    예상 출력
    iloveyou
    
  2. 예제 2

    입력
    10
    ulpwzkkfco
    d
    
    예상 출력
    helloworld