#1531
Gold IV

암호화 통신

투 스텝
시간 제한
1s
메모리 제한
512MB
제출
33
정답
11
맞힌 사람
8
정답 비율
36.4%

문제

이 문제는 투 스텝 문제다. 투 스텝 문제란 제출한 프로그램을 독립적으로 두 번 실행하는 형식의 문제다. 각 실행은 일반적인 문제와 같다.

서현이는 좋아하는 그녀에게 러브레터를 보내려고 한다. 러브레터가 배송되는 동안 집배원이나 다른 사람들이 열어볼까 겁난 서현이는 러브레터를 암호화해서 보내기로 했다. 암호화 장치와 복호화 장치를 각각 서현이의 집과 그녀의 집에 미리 설치해 놓았다. 러브레터를 보내는 과정은 다음과 같다.

  • 원래 러브레터의 내용은 문자열 SS이다. 서현이는 암호화 장치를 이용해서 SS를 격자 GG로 암호화한다.
  • GG를 그녀에게 우편으로 보낸다.
  • GG를 받은 그녀는 복호화 장치를 사용해서 문자열 SS를 복원해 낸다.
  • 문자열 SS는 알파벳 대문자로 이루어져 있고, 격자 GG는 #와 .로만 이루어져 있다.

암호화 장치와 복호화 장치를 구현하여 서현이가 러브레터를 보낼 수 있도록 도와주자.

이 문제에서 여러분의 프로그램은 한 테스트 케이스에 대해 두 번 실행된다. 첫 번째 실행에서는 암호화 장치의 역할을 수행해야 하고, 두 번째 실행에서는 복호화 장치의 역할을 수행해야 한다.

입력

첫째 줄에 이번 실행에서의 역할을 나타내는 문자열 RR이 주어진다. R은 encrypt 또는 decrypt 중 하나이며, 각각 이번 실행에서의 역할이 암호화 장치 또는 복호화 장치임을 의미한다.

RR이 encrypt 인 경우, 둘째 줄에는 정수 NN이 주어진다. 셋째 줄에는 길이 NN의 문자열 SS가 주어진다. SS는 알파벳 대문자로 이루어져 있다. (1≤N≤1001\le N\le 100)

RR이 decrypt 인 경우, 둘째 줄에는 정수 XX, YY가 공백으로 구분되어 주어진다. 셋째 줄부터 XX개의 줄에 걸쳐 격자 GG의 정보가 주어진다. 각 줄에는 길이 YY의 #와 .로만 이루어진 문자열이 주어진다. (1≤X,Y≤221\le X, Y\le 22)

출력

RR이 encrypt 인 경우, 첫째 줄에 두 정수 XX, YY를 공백으로 구분하여 출력한다. 둘째 줄부터 XX개의 줄에 걸쳐 격자 GG를 출력한다. 각 줄에는 길이가 YY고 #와 .으로만 이루어진 문자열을 출력해야 한다. XX와 YY는 각각 11이상 2222이하여야 한다.

RR이 decrypt 인 경우, 첫째 줄에 정수 NN을 출력한다. 둘째 줄에 길이가 NN인 문자열 S′S'를 출력한다. 이때의 문자열 S′S'는 처음 실행에서 주어졌던 문자열 SS와 일치해야 한다.

예제 입력 1

encrypt
4
SWIT

예제 출력 1

5 17
.###.#..#..#..###
#....#..#..#...#.
.##..#..#..#...#.
...#.####..#...#.
###...##...#...#.

예제 입력 2

decrypt
5 17
.###.#..#..#..###
#....#..#..#...#.
.##..#..#..#...#.
...#.####..#...#.
###...##...#...#.

예제 출력 2

4
SWIT

노트

암호화 과정에서 출력하는 격자는 조건만 만족한다면 무엇을 출력하든 상관없으나, 복호화 과정에서 출력하는 문자열은 최초 암호화 과정에서 주어졌던 문자열과 일치해야 정답으로 인정된다.

문제를 만든 사람
조서현
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출

제출 내역이 없습니다.

맞은 사람
#순위사용자언어시간메모리코드 길이
10961🥇
서재형
C++1ms1620KB1815B
10954🥈
박승현
C++1ms1620KB2108B
10316🥉
황현석
C++1ms1620KB888B
105374
cpp = competitive python programming
C++1ms1624KB2021B
106465
Kokiri is cute
C++1ms1624KB2631B
106916
SW-IT Contest는 충남대학교 컴퓨터인공지능학부 알고리즘 동아리 ANA에서 주최하는 프로그래밍 대회로, 팀으로 출전하여 알고리즘 문제를 해결하는 대회입니다.
Python10ms9280KB714B
106047
스피드런도 런이다
PyPy24ms49944KB755B
107318
실외기선풍기세탁기
Java40ms39236KB2777B
난이도 투표
Gold IV1명 투표· 18일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
10961
맞았습니다
C++1ms1620KB1815B2026. 10. 05. 14:53
10960
틀렸습니다
C++--1792B2026. 10. 05. 14:52
10959
출력 형식 에러
C++--67B2026. 10. 05. 14:51
10954
맞았습니다
C++1ms1620KB2108B2026. 10. 05. 08:09
10953
틀렸습니다
C++--2073B2026. 10. 05. 08:08