Перестановочный шифр: шифрование

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

Submit solution


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

Problem type
Allowed languages
C++, Python

Некоторая программа шифрует сообщение, разбивая его на блоки одинаковой длины m и переставляя буквы внутри каждого блока по одному и тому же правилу.

Правило задаётся массивом p из m различных чисел от 1 до m. Для каждого блока буква, стоявшая в исходном блоке на позиции p[j], после шифрования попадает на позицию j.

Сообщение разбивается на блоки длины m слева направо. Гарантируется, что длина сообщения кратна m.

Требуется вывести результат работы программы, то есть зашифрованную строку.

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

В первой строке задано целое число m — длина блока.

Во второй строке заданы m различных целых чисел p_1, p_2, ..., p_m — перестановка чисел от 1 до m.

В третьей строке задана строка из заглавных латинских букв, длина которой кратна m.

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

Выведите зашифрованную строку.

Ограничения

  • 1 <= m <= 100
  • p — перестановка чисел от 1 до m
  • длина строки не превышает 100000
  • длина строки кратна m

Примеры

Пример 1

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

1
1
A

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

A
Пример 2

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

2
2 1
ABCD

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

BADC

Комментарии

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