Шифровальщик/расшифровальщик Виженера
Просмотр в формате PDF
Submit solution
Очки:
140
Ограничение по времени:
2.0s
Ограничение по памяти:
256M
Problem type
Allowed languages
C++, Python
Разрабатывается консольная утилита для работы с сообщениями. В зависимости от выбранного режима она должна либо зашифровать текст по ключу Виженера, либо расшифровать его.
Ключ состоит из заглавных латинских букв. При обработке текста ключ применяется циклически только к символам, являющимся заглавными латинскими буквами.
- В режиме
encкаждая буква текста сдвигается вперёд на величину, соответствующую текущей букве ключа:A = 0,B = 1, ...,Z = 25. - В режиме
decкаждая буква текста сдвигается назад на ту же величину. - Символы, не являющиеся заглавными латинскими буквами, остаются без изменений и не расходуют символ ключа.
Требуется вывести результат работы утилиты.
Входные данные
В первой строке задан режим работы: enc или dec.
Во второй строке задан ключ — непустая строка из заглавных латинских букв.
В третьей строке задан текст, состоящий из заглавных латинских букв и пробелов.
Выходные данные
Выведите одну строку — результат преобразования текста.
Ограничения
- режим —
encилиdec; - ключ содержит только заглавные латинские буквы;
- текст содержит только заглавные латинские буквы и пробелы.
Примеры
Пример 1
Входные данные
enc
A
ABC DEF
Выходные данные
ABC DEF
Пример 2
Входные данные
dec
B
B C
Выходные данные
A B
Комментарии