РУҚА
24

Решение: Поиск минимального фрагмента

ЕГЭ · Информатика · Задание 24 · Массивы и строки
ВысокаяФИПИ199381Короткий ответ≈ 10 минутРазбор в 4 шага
Условие

Текстовый файл состоит из заглавных букв латинского алфавита $A$, $B$, $C$, $D$, $E$ и $F$.

Определите минимальное количество идущих подряд символов в прилагаемом файле, среди которых пара символов $AB$ (в указанном порядке) встречается ровно 220 раз.

Для выполнения этого задания следует написать программу.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

Сначала считываем строку из файла и для каждой позиции $i$ проверяем условие: символ в позиции $i$ равен $A$, а следующий символ равен $B$.

2

Строим префиксные суммы количества вхождений $AB$. Тогда число таких пар на отрезке с границами $l$ и $r$ вычисляется за постоянное время.

3

Перебираем левую границу фрагмента и с помощью двух указателей либо бинарного поиска находим минимальную правую границу, при которой внутри фрагмента ровно 220 вхождений $AB$.

Среди всех подходящих фрагментов выбираем минимальную длину и выводим её.

Ответ

Числовой ответ нельзя определить без содержимого прилагаемого текстового файла.

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Считать перекрывающиеся вхождения неправильно.

Искать только неперекрывающиеся подстроки.

Не учитывать, что пара $AB$ может начинаться на последнем символе выбранного фрагмента и выходить за его границу.

Минимизировать число пар вместо длины фрагмента.

Закрепить приёмВ теме «Массивы и строки» ещё 237 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 24 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Массивы и строки»: в ней 238 задач, и у каждой есть такой же разбор. Регистрация не нужна.