Сначала ASCII из 0/1, потом Цезарь
Просмотр в формате PDF
Submit solution
Очки:
130
Ограничение по времени:
2.0s
Ограничение по памяти:
256M
Problem type
Allowed languages
C++, Python
Дешифровальщик получил огромный файл, содержащий только символы 0 и 1 без пробелов. Известно, что файл был сформирован так:
- исходный текст зашифровали шифром Цезаря со сдвигом
kвперёд; - затем каждый символ получившейся строки записали как его восьмибитовый ASCII-код;
- все эти двоичные блоки приписали друг к другу.
Требуется восстановить исходный открытый текст.
Иными словами, нужно сначала разбить двоичную строку на блоки по 8 символов и декодировать их как ASCII-символы, а затем снять шифр Цезаря, выполнив сдвиг на k назад.
Гарантируется, что после ASCII-декодирования получается строка, состоящая только из заглавных латинских букв и пробелов.
Входные данные
В первой строке задано целое число k — величина сдвига в шифре Цезаря.
Во второй строке задана двоичная строка из символов 0 и 1 без пробелов. Её длина кратна 8.
Выходные данные
Выведите восстановленный открытый текст.
Ограничения
0 <= k <= 25- длина двоичной строки не превышает
8 * 10^6 - после декодирования по ASCII получается строка из заглавных латинских букв и пробелов
Примеры
Пример 1
Входные данные
0
010000010010000001011010
Выходные данные
A Z
Пример 2
Входные данные
25
01010111010110000101100100100000010110100100000101000010
Выходные данные
XYZ ABC
Комментарии