Частотный анализ
Просмотр в формате PDFКриптоаналитик получил сообщение, зашифрованное простой заменой заглавных латинских букв. Для вскрытия он использует упрощённую модель частотного анализа.
Известна строка из 26 заглавных латинских букв — это порядок букв открытого текста по убыванию их типичной частоты в языке: первая буква считается самой частой, вторая — следующей по частоте и так далее.
Предполагается, что в данном шифротексте порядок букв по частоте совпадает с этим эталонным порядком идеально. То есть:
- самая частая буква шифротекста соответствует первой букве заданного порядка;
- вторая по частоте — второй;
- и так далее.
Необходимо расшифровать сообщение:
- подсчитать частоты всех заглавных латинских букв в шифротексте;
- упорядочить буквы шифротекста по убыванию частоты;
- если частоты равны, раньше должна идти буква с меньшим алфавитным порядком;
- сопоставить полученный порядок с данным эталонным порядком букв;
- заменить все заглавные латинские буквы в сообщении по найденному соответствию.
Все символы, не являющиеся заглавными латинскими буквами, нужно оставить без изменений.
Входные данные
Первая строка содержит строку из 26 заглавных латинских букв — порядок букв открытого текста по убыванию частоты.
Вторая строка содержит шифротекст, состоящий из заглавных латинских букв и пробелов.
Выходные данные
Выведите расшифрованный текст.
Ограничения
- длина первой строки равна
26; - все символы первой строки — различные заглавные латинские буквы;
- вторая строка состоит только из заглавных латинских букв и пробелов;
1 <= длина второй строки <= 10^5.
Примеры
Пример 1
Входные данные
ABCDEFGHIJKLMNOPQRSTUVWXYZ
A
Выходные данные
A
Пример 2
Входные данные
ZYXWVUTSRQPONMLKJIHGFEDCBA
A A
Выходные данные
Z Z
Комментарии