Специалисты службы информационной безопасности наняли стажера Васю. Вася захотел проявить себя в первый же день и придумал собственный шифр. Произвольная строка S
S
обрабатывается следующим образом: буквы строки
S
S
переставляются, символы с начала строки и с конца станут чередоваться. Первый символ строки
S
S
будет первым символом зашифрованной строки. Последний символ станет вторым, затем второй символ попадёт на третью позицию, а предпоследний – на четвертую и так далее, пока в строке останутся символы. Затем к полученной строке приписывается справа служебный символ #.
Вася случайно запустил шифрующий скрипт на базе данных клиентов и ушёл в долго отпуск. Поэтому расшифровывать базу придётся вам.
Формат входных данных
В единственной строке дана зашифрованная строка из больших и маленьких латинских букв и символа #. Гарантируется, что данная строка могла быть получена применением описанного выше алгоритма. Длина строки не превосходит 100 символов.
Формат результата
Выведите единственную строку – расшифрованный текст.
Примеры
Входные данные
Tfifnok#
Результат работы
Tinkoff
Примечания
Строка Tinkoff зашифровывалась бы следующим образом:
T – добавили букву с первой позиции
Tf – добавили букву с
7
7
-й позиции
Tfi – добавили букву со
2
2
-й позиции
Tfif– добавили букву с
6
6
-й позиции
Tfifn – добавили букву с
3
3
-й позиции
Tfifno – добавили букву с
5
5
-й позиции
Tfifnok – добавили букву с
4
4
-й позиции
Tfifnok# – дописали символ #
Результат : Tfifnok#
Объяснение:
Допустим, у нас есть сообщение «habr», которое необходимо передать без ошибок. Для этого сначала нужно наше сообщение закодировать при Кода Хэмминга. Нам необходимо представить его в бинарном виде.На этом этапе стоит определиться с, так называемой, длиной информационного слова, то есть длиной строки из нулей и единиц, которые мы будем кодировать. Допустим, у нас длина слова будет равна 16. Таким образом, нам необходимо разделить наше исходное сообщение («habr») на блоки по 16 бит, которые мы будем потом кодировать отдельно друг от друга. Так как один символ занимает в памяти 8 бит, то в одно кодируемое слово помещается ровно два ASCII символа. Итак, мы получили две бинарные строки по 16 битбит. распараллеливается, и две части сообщения («ha» и «br») кодируются независимо друг от друга. Рассмотрим, как это делается на примере первой части.
Прежде всего, необходимо вставить контрольные биты. Они вставляются в строго определённых местах — это позиции с номерами, равными степеням двойки. В нашем случае (при длине информационного слова в 16 бит) это будут позиции 1, 2, 4, 8, 16. Соответственно, у нас получилось 5 контрольных бит (выделены красным цветом)Таким образом, длина всего сообщения увеличилась на 5 бит. До вычисления самих контрольных бит, мы присвоили им значение «0».
Дискретная - это такая информация, которую сначала разделили на части, а потом записали в двоичном коде.
Звук делят на части по высоте за каждую единицу измерения времени: те есть взяли 1 секунду разделили ее на 10 частей у каждой части есть своя высота звучания. Каждой части по порядку дали свой номер: 1, 2, 3, и поставили в соотвествие высоту звука в данное время. Получилась дискретизация звука за одну секунду.
По настоящему каждую секунду делят от 8000 сигналов (низкое качество звука) до 44000 измерений с секунду (высокое качество звука). Единица измерения - Герц - что значит количество измерений в 1 секунду. Запись - 8000Гц = 8кГц значит, что в 1 секунду сделали 8000 измерений.
Цифровая - порядковый номер каждого измерения это число, его записывают в двоичном коде. Высота звука - это тоже число и тоже в двоичном коде записывают.