1. Главная
  2. Библиотека
  3. Программирование
  4. Метод «железнодорожной изгороди» (по правде говоря, авт...
Решение задачи

Метод «железнодорожной изгороди» (по правде говоря, авторы задачи не понимают смысл этого термина :) ) — один из простейших методов шифрования текстовых сообщений, разработанный в начале XX века. Конечно, сейчас говорить о его надёжности и стойкости

  • Программирование

Условие:

Метод «железнодорожной изгороди» (по правде говоря, авторы задачи не понимают смысл этого термина :) ) — один из простейших методов шифрования текстовых сообщений, разработанный в начале XX века. Конечно, сейчас говорить о его надёжности и стойкости смешно, но, тем не менее, в анналы криптографии он занесен… Суть метода «железнодорожной изгороди» заключается в следующем: текст длиной N символов посимвольно записывается «змейкой» в таблицу из N столбцов и k строк (здесь k — ключ шифрования). Пример заполнения таблицы показан на рисунке для k = 5 и исходной строки Thisisasecretmessage, для наглядности пробелы заменены символом нижнего подчёркивания.



После заполнения таблицы символы исходного исходного текста читаются из этой таблицы построчно. Таким образом, зашифрованная строка имеет вид Tah_tmeisseegsiersacs. Заметьте, что длина зашифрованного сообщения всегда совпадает с длиной исходного.

Вам требуется зашифровать сообщение методом «железнодорожной изгороди».

Формат входных данных
Первая строка содержит величину ключа k (2 ≤ k ≤ 1000). Во второй строке записано шифруемое сообщение, длина которого не меньше 1 символа и не превосходит 30000 символов (в 50 % тестов эта длина не превосходит 255). В сообщение могут входить символы с кодами от 32 до 127, пробелов в начале и конце строки нет.
Формат выходных данных
Выведите единственную строку с зашифрованным сообщением.

Решение:

Для решения задачи шифрования методом «железнодорожной изгороди» мы будем следовать следующим шагам: 1. Чтение входных данных: Сначала мы получим значение ключа k и сообщение, которое нужно зашифровать. 2. Создание таблицы: Мы создадим таблицу с k строками и N столбцами, где N — это длина сообщения. Мы будем заполнять эту таблицу «змейкой», то есть поочередно заполняя строки. 3. Заполнение таблицы: Мы будем заполнять таблицу, начиная с первой строки и двигаясь вниз до последней строки, а затем снова вверх, пока не заполним все символы сообщения. 4. Чтение зашифрованного сообщения: После за...

Создадим список списков для хранения символов сообщения. Теперь мы будем заполнять таблицу «змейкой». Теперь мы будем считывать символы из таблицы построчно. Выведем зашифрованное сообщение. Теперь объединим все шаги в один код: Если ввести: Вывод будет: Таким образом, мы успешно зашифровали сообщение методом «железнодорожной изгороди».

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет