Есть ответ 👍

Возможность отправлять закодированные сообщения во время второй мировой войны была достаточно важной для союзников. сообщения всегда отправлялись после их кодирования при известного пароля. иметь фиксированный пароль было небезопасно, поэтому возникла необходимость часто изменять его. однако следовало разработать механизм отправления нового пароля. у одного из , работавших в криптографической команде, возникла умная идея - отправить пароль, скрытый в самом сообщении. интересным моментом было то, что получателю сообщения достаточно было знать только размер пароля, а потом найти его в полученном тексте. пароль размера n можно найти поиском в тексте наиболее часто встречаемой подстроки из n символов. после нахождения пароля все подстроки с ним, удаляются из текста. теперь пароль можно использовать для расшифровки сообщения. однако ваша будет . вам достаточно написать программу, которая по заданному размеру пароля и закодированному сообщению найдет пароль в соответствии с описанным выше алгоритмом. рассмотрим пример, в котором размер пароля равен трем (n = 3), а текст сообщения имеет вид baababacb. паролем будет aba, потому что размер этой подстроки 3, она появляется чаще всего во всем тексте (дважды), а остальные шесть различных подстрок появляются только один раз (baa, aab, bab, bac, acb). технические условия входные данные состоит из нескольких тестов. каждый тест представляет собой одну строку, в которой находится длина пароля n (0 < n ≤ 10) и закодированное сообщение. сообщение содержит только прописные буквы латинского алфавита, его длина не более 106 и не меньше n. выходные данные для каждого теста в отдельной строке следует вывести искомый пароль. если существует несколько паролей, удовлетворяющих , то вывести лексикографически наименьший.

251
259
Посмотреть ответы 2

Ответы на вопрос:


Type       piece = record               value: string[10];               count : = 1;       end; var       pieces: array[1..200]of piece;       i, j, n, pieces_n: integer;       s, p: string;       found: boolean;       imax: =1; begin       read(s);       read(n);       for i : = 1 to length(s) - n + 1 do       begin               p : = copy(s, i, n);               found : = false;               for j : = 1 to pieces_n do                       if pieces[j].value = p then begin                               pieces[j].count : = pieces[j].count + 1;                               found : = true;                               if pieces[imax].count < pieces[j].count then                                       imax : = j;                               break;                       end;               if not found then begin                       pieces_n : = pieces_n + 1;                       pieces[pieces_n].value : = p;               end;       end;             writeln(pieces[imax].value); end.

Excel, a не exele. xls/xlsx

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS