Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi]Расшифровка


Автор: DeadLine 5.1.2007, 19:09
21.    Расшифровка (информатика)
Компания по защите интеллектуальной собственности решила повысить уровень защищенности своих операционных систем путем шифрования всех сообщений, передаваемых внутри ее локальных сетей. Любое допустимое в компании сообщение представляет собой строку S = s1s2…sn, состоящую исключительно из букв латинского алфавита. Шифрование сообщения осуществляется в K фаз. На каждой фазе строка S заменяется строкой, в которой сначала располагаются все буквы строки S, стоявшие на позициях с номерами, являющимися простыми числами (первый блок), а затем – все остальные буквы (второй блок). Напомним, что число называется простым, если оно – натуральное и имеет ровно два различных натуральных делителя. Относительный порядок букв в каждом из двух блоков остается неизменным. Например, строка S = abcdefgh на первой фазе шифруется в строку S = bcegadfh. Если осуществляется вторая фаза шифрования, то строка примет вид  S = ceafbgdh. После передачи зашифрованного сообщения по сети оно должно быть  дешифровано, чтобы получатель смог прочитать исходную запись.
Требуется написать программу, осуществляющую дешифрование пришедшей по сети строки.
Технические требования:
Ввод данных из текстового файла input.txt. Вывод данных в текстовый файл output.txt.
Ограничение по времени тестирования: 1 секунда на один тест
Формат входных данных:
Первая строка содержит натуральное число K (K ≤ 100). Далее - строка, которая содержит сообщение S после K фаз шифрования, состоящая из n ( 1 ≤ n ≤ 250) букв латинского алфавита. 
Формат выходных данных:
В файл вывести только одну дешифрованную строку S.
Пример:
Входной файл    Выходной файл
2
CEAFBGDH    ABCDEFGH
1
BAAAACB    ABACABA


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)