Сначала Base64, потом Цезарь
Просмотр в формате PDFАгент перехватил сообщение, защищённое двумя слоями.
Сначала исходный текст был сдвинут шифром Цезаря на k позиций вперёд по алфавиту. После этого получившуюся строку упаковали в Base64.
В распоряжении агента есть число k и итоговая строка в Base64. Чтобы восстановить исходное сообщение, нужно снять защиту в обратном порядке: сначала декодировать Base64, затем выполнить обратный сдвиг Цезаря на k позиций.
Известно, что после декодирования Base64 получается строка, состоящая только из заглавных латинских букв и пробелов.
Требуется вывести исходный открытый текст.
Входные данные
Первая строка содержит целое число k (0 <= k <= 25).
Вторая строка содержит строку в кодировке Base64.
Выходные данные
Выведите исходный открытый текст.
Открытый текст может содержать значимые пробелы, в том числе ведущие и концевые. Их нужно выводить дословно, без обрезки и каких-либо изменений.
Ограничения
0 <= k <= 25- после декодирования Base64 получается текст только из символов
'A'–'Z'и пробелов - открытый текст может начинаться и/или заканчиваться пробелами, и эти пробелы являются частью ответа
- ввод осуществляется через стандартный ввод
- вывод осуществляется через стандартный вывод
Примеры
Пример 1
Входные данные
0
QQ==
Выходные данные
A
Пример 2
Входные данные
1
QSA=
Выходные данные
Z
Здесь строка Base64 QSA= декодируется в A (буква A и пробел). Обратный сдвиг Цезаря на 1 затрагивает только букву: A переходит в Z, а пробел остаётся пробелом. Поэтому в ответе ровно два символа — Z и завершающий пробел; этот концевой пробел обязателен.
Комментарии