아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

아핀 암호

면접 대비

시간 제한5초메모리 제한256 MB

요약
각 테스트 케이스마다 평문 대문자에 E(X) = (aX + b) mod 26을 적용해 암호문을 출력합니다.
난이도

쉬움10점 중 1점

유형
구현, 문자열, 수학
정답자
아직 제출이 없습니다

문제

서쪽나라에서 특수훈련을 받은 정은이가 동쪽나라에 잠입했다. 동쪽나라의 정보를 손에 넣은 정은이는 그 정보를 안전하게 서쪽나라로 보내려고 아핀 암호(Affine Cipher)를 쓰기로 했다.

아핀 암호는 다음 식으로 계산한다.

E(X)=(aX+b) mod 26E(X) = (aX + b) \bmod 26

A부터 Z까지의 알파벳을 순서대로 0,1,2,…,250, 1, 2, \dots, 25에 대응시킨다. a=3a = 3, b=1b = 1일 때 알파벳 A를 이 식에 넣으면 E(0)=(3×0+1) mod 26=1E(0) = (3 \times 0 + 1) \bmod 26 = 1이므로 암호화한 결과는 B다.

aa와 bb, 그리고 알파벳 대문자로만 이루어진 평문이 주어진다. 평문을 암호문으로 바꾸는 프로그램을 작성하라.

입력

첫 줄에 테스트 케이스의 개수 TT (1≤T≤501 \le T \le 50)가 주어진다.

각 테스트 케이스의 첫째 줄에는 두 정수 aa와 bb (0<a,b≤1 000 0000 < a, b \le 1\,000\,000)가 주어진다. aa는 26과 서로소다.

각 테스트 케이스의 둘째 줄에는 평문 ss가 주어진다. 평문의 길이 ∣s∣|s|는 0보다 크고 1 000 0001\,000\,000보다 작으며, ss는 알파벳 대문자로만 이루어진다.

출력

각 테스트 케이스마다 평문 ss를 암호문으로 바꾼 결과를 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    2
    3 1
    IAMSPY
    5 3
    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    
    예상 출력
    ZBLDUV
    DINSXCHMRWBGLQVAFKPUZEJOTY
    
  2. 예제 2

    입력
    1
    1 26
    HELLOWORLD
    
    예상 출력
    HELLOWORLD
    
  3. 예제 3

    입력
    1
    25 25
    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    
    예상 출력
    ZYXWVUTSRQPONMLKJIHGFEDCBA