Шифровальщик/расшифровальщик Виженера

Просмотр в формате 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

Комментарии

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