Сначала ASCII из 0/1, потом Цезарь

Просмотр в формате PDF

Submit solution


Очки: 130
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Problem type
Allowed languages
C++, Python

Дешифровальщик получил огромный файл, содержащий только символы 0 и 1 без пробелов. Известно, что файл был сформирован так:

  1. исходный текст зашифровали шифром Цезаря со сдвигом k вперёд;
  2. затем каждый символ получившейся строки записали как его восьмибитовый ASCII-код;
  3. все эти двоичные блоки приписали друг к другу.

Требуется восстановить исходный открытый текст.

Иными словами, нужно сначала разбить двоичную строку на блоки по 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

Комментарии

Еще нет ни одного комментария.