HomeVolumesContestsSectionsForumsUsersPrintHelpAbout

Sections > Unsorted > problem:


1

Section problems

• Подсказки к задачам
• Подсказки к задачам
• Подсказки к задачам
• Подсказки к задачам
• Подсказки к задачам
• Подсказки к задачам
• Поиск элемента
• Покупка пирожков
• 1
• Порядковая статистика
• Порядковая статистика — 2
• Постиранный пароль
• Постфиксное выражение
• Почти совершенная задача
• Почтовый принтер
• Правый двоичный поиск
• Принтеры

Feedback

If you notice incorrect translations in Contester, please let author know.

Time limit 2000/4000/4000/4000 ms. Memory limit 65000/65000/65000/65000 Kb.


Квадрат Полибия - одна из древнейших систем кодирования, предложенная Полибием (греческий историк, полководец, государственный деятель, III век до н. э.).Несмотря на то, что квадрат изначально создавался для кодирования с его помощью можно успешно шифровать. Для того, чтобы зашифровать текст квадратом Полибия нужно сделать несколько шагов:

Шаг 1: Формирование таблицы шифрования

К каждому языку отдельно составляется таблица шифрования с одинаковым (не обязательно) количеством пронумерованных строк и столбцов, параметры которой зависят от его мощности (количества букв в алфавите). Берутся два целых числа, произведение которых ближе всего к количеству букв в языке — получаем нужное число строк и столбцов. Затем вписываем в таблицу все буквы алфавита подряд — по одной на каждую клетку. При нехватке клеток можно вписать в одну две буквы (редко употребляющиеся или схожие по употреблению).

Латинский алфавит

В современном латинском алфавите 26 букв, следовательно таблица должна состоять из 5 строк и 5 столбцов, так как 25=5*5 наиболее близкое к 26 число. При этом буквы I, J не различаются (J отождествляется с буквой I), так как не хватает 1 ячейки:

    1 2 3 4 5
1 A B C D E
2 F G H I/J K
3 L M N O P
4 Q R S T U
5 V W X Y Z

Шаг 2: Принцип шифрования

Указываются соответствующие каждой букве цифры из таблицы. Первой пишется цифра по горизонтали, второй - по вертикали. (A = 11, B = 21…).Полученный код записывается слитно. Полученная последовательность цифр сдвигается циклически влево на один шаг(нечетное количество шагов).Эта последовательность вновь разбивается в группы по два и по таблице заменяется на окончательный шифротекст.

Ваша задача - зашифровать сообщение с помощью квадрата Полибия.

Входные данные

Входной поток содержит исходное сообщение длины S(10 <= S <= 1000).

Во второй строке расположено число k (1 <= k <= 999, нечетное) - количсетво шагов сдвига.

Выходные данные

Выведите одну строку длиной S символов — зашифрованное сообщение.

Примеры
Входные данныеВыходные данные
SOMETEXT
1
THXQYLUO
CIPHER
1
QWNWFO

 

Для отправки решений необходимо выполнить вход.

www.contester.ru