В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Suzdik23
Suzdik23
27.10.2020 10:20 •  Информатика

Шифрования, который часто используют начинающие криптографы, заклю- чается в том, что шифруемое слово записывается некоторым достаточно хитрым образом в клетках
квадрата. Одним из таких, не очень удачных шифров, является шифр "Змейка".
Он применяется для шифрования слов длины n^2 (если длины слова меньше, оно дополняется
точками). Слово разбивается на части длиной по n символов каждая. Далее эти части записыва-
ются в квадрат размером n на n (каждая часть в отдельную строку), при этом части с четными
номерами записываются задом наперед. Например, слово Iloveyou., полученное из фразы I love
you. удалением пробелов, будет закодировано следующим образом.
Оно будет разбито на три части: Ilo, vey, ou.. Эти части далее будут записаны в квадрат так:

Можно видеть, что шифруемое слово записано в этом квадрате "змейкой".
Задан квадрат, получившийся в результате шифрования некоторого слова описанным
Необходимо выяснить, содержится ли в исходном слове подстрока t.
Формат ввода:

Первая строка входного файла содержит целое число n (1 <= n <= 50). Последующие n строк
содержат каждая по n символов - строки квадрата, начиная с первой. Последняя строка входного
файла содержит искомую непустую строку t, длина которой не превышает 1000 символов. Квадрат
и строка t состоят только из строчных букв латинского алфавита и точек.
Формат вывода:

В выходной файл выведите слово YES, если строка t содержится в зашифрованной строке, и
слово NO - в противном случае.

Пример ввода: Пример вывода:

3
Ilo
yev
ou.
you

YES

3
Ilo
yev
ou.
me

NO

Показать ответ
Ответ:
140219801
140219801
10.04.2020 02:32
Var  i: integer;  begin
for i:=1 to 9 do  write(i);  writeln(10);
for i:=0 to 8 do  write(i);  writeln(9);
for i:=1 to 2 do  write('0');  for i:=1 to 7 do  write(i);  writeln('8');
for i:=1 to 3 do  write('0');  for i:=1 to 6 do  write(i);  writeln('7');
for i:=1 to 4 do  write('0');  for i:=1 to 5 do  write(i);  writeln('6');
for i:=1 to 5 do  write('0');  for i:=1 to 4 do  write(i);  writeln(5);
for i:=1 to 6 do  write('0');  for i:=1 to 3 do   write(i);  writeln('4');
for i:=1 to 7 do  write('0');  for i:=1 to 2 do  write(i);  writeln(3);
for i:=1 to 8 do  write('0');  write('1');writeln('2');
for i:=1 to 9 do  write('0');  writeln(1);  
end.

Как сделать более кратко не знаю. Но эта программа работает.
0,0(0 оценок)
Ответ:
12352858585
12352858585
10.04.2020 02:32
Const
  nn = 20;

var
  i, j, n: integer;
  a: array[1..nn, 1..nn] of integer;

begin
  writeln('Задайте размер матрицы n');
  readln(n);
  if n > nn then
    writeln('Вы превысили допустимый размер матрицы 20')
  else begin
    writeln('Матрица-результат');
    for i := 1 to n do
    begin
      writeln;
      for j := 1 to n do begin
        if i < j then a[i, j] := 1
        else if i = j then a[i, j] := 2
        else a[i, j] := 3;
        write(a[i, j]:2)
      end;
    end;
    writeln
  end
end.

Тестовый пример:

Задайте размер матрицы n
10
Матрица-результат

 2 1 1 1 1 1 1 1 1 1
 3 2 1 1 1 1 1 1 1 1
 3 3 2 1 1 1 1 1 1 1
 3 3 3 2 1 1 1 1 1 1
 3 3 3 3 2 1 1 1 1 1
 3 3 3 3 3 2 1 1 1 1
 3 3 3 3 3 3 2 1 1 1
 3 3 3 3 3 3 3 2 1 1
 3 3 3 3 3 3 3 3 2 1
 3 3 3 3 3 3 3 3 3 2
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота