ЕГЭ №24

Автор: wilgelmzwer , 24 мая 2026
24052026_9_24
Условие задачи

Текстовый файл содержит строку из символов A, B, C и D.

Определите количество непрерывных фрагментов строки, которые начинаются на букву A, заканчиваются на букву A и содержат ровно 30 букв C.

В ответе запишите одно целое число.

Для выполнения задания используйте файл: 24_A_30_C_01.txt

Файлы к задаче
Подсказка

Удобно рассматривать позиции всех букв C. Если фрагмент содержит ровно 30 букв C, то его левая граница должна находиться после предыдущей C, а правая — перед следующей C.

Для каждого набора из 30 подряд идущих букв C нужно посчитать, сколько букв A может быть началом фрагмента и сколько букв A может быть концом фрагмента.

Решение

Найдём позиции всех букв C. Добавим фиктивные позиции -1 и len(s), чтобы удобно обрабатывать начало и конец строки.

Будем брать каждые 30 подряд идущих букв C. Для такого набора левая граница фрагмента может находиться после предыдущей C, а правая граница — перед следующей C.

Так как фрагмент должен начинаться и заканчиваться на A, нужно перемножить количество букв A в левой допустимой зоне и количество букв A в правой допустимой зоне.

s = open('24_A_30_C_01.txt').read().strip()

c = [-1]
for i, ch in enumerate(s):
    if ch == 'C':
        c.append(i)
c.append(len(s))

ans = 0
k = 30

for i in range(1, len(c) - k):
    left_zone_l = c[i - 1] + 1
    left_zone_r = c[i]

    right_zone_l = c[i + k - 1]
    right_zone_r = c[i + k] - 1

    left_a = s[left_zone_l:left_zone_r + 1].count('A')
    right_a = s[right_zone_l:right_zone_r + 1].count('A')

    ans += left_a * right_a

print(ans)

Ответ: 3047.

ЕГЭ
Задание 24
ЕГЭ №24
Строки
Подстроки
2 - простая
Авторская задача
Автор: wilgelmzwer , 24 мая 2026
24052026_8_24
Условие задачи

Текстовый файл содержит строку из символов A, B, C, D и E.

Определите максимальную длину непрерывного фрагмента строки, в котором буква A встречается не более 50 раз.

В ответе запишите одно целое число.

Для выполнения задания используйте файл: 24_50_A_01.txt

Файлы к задаче
Подсказка

Можно использовать метод двух указателей. Будем поддерживать текущий фрагмент строки и количество букв A внутри него.

Если букв A стало больше 50, нужно сдвигать левую границу фрагмента вправо, пока условие снова не станет выполненным.

Решение

Будем идти по строке справа налево? Нет, удобнее идти слева направо и поддерживать окно — текущий фрагмент строки.

Переменная left хранит левую границу фрагмента, а count_a — количество букв A внутри него.

s = open('24_50_A_01.txt').read().strip()

left = 0
count_a = 0
best = 0

for right, ch in enumerate(s):
    if ch == 'A':
        count_a += 1

    while count_a > 50:
        if s[left] == 'A':
            count_a -= 1
        left += 1

    best = max(best, right - left + 1)

print(best)

Ответ: 4225.

ЕГЭ
Задание 24
ЕГЭ №24
Строки
Подстроки
Анализ условия
2 - простая
Авторская задача
Автор: wilgelmzwer , 24 мая 2026
24052026_2_24
Условие задачи

Текстовый файл содержит строку из символов A, B, C и D.

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

В ответе запишите одно целое число.

Для выполнения задания используйте файл: 24_no_A_01.txt

Файлы к задаче
Подсказка

Можно идти по строке слева направо и поддерживать текущий допустимый фрагмент.

Если встретились три подряд идущие буквы A, то начало нового допустимого фрагмента можно перенести на вторую букву A из этой тройки.

Решение

Будем просматривать строку слева направо. Переменная left хранит начало текущего допустимого фрагмента, а a_run — сколько букв A подряд встретилось к текущему моменту.

Если a_run стало равно 3, значит текущий фрагмент уже содержит запрещённую цепочку AAA. Тогда переносим левую границу так, чтобы в новом фрагменте остались только две последние буквы A.

s = open('24_no_A_01.txt').read().strip()

best = 0
left = 0
a_run = 0

for right, ch in enumerate(s):
    if ch == 'A':
        a_run += 1
    else:
        a_run = 0

    if a_run == 3:
        left = right - 1
        a_run = 2

    best = max(best, right - left + 1)

print(best)
ЕГЭ
Задание 24
ЕГЭ №24
Строки
Подстроки
Циклы
1 - базовая
Авторская задача
Автор: wilgelmzwer , 24 мая 2026
24052026_1_24
Условие задачи

Текстовый файл содержит строку из символов A, B, C, D, E и F.

Найдите количество непересекающихся подстрок, каждая из которых содержит не менее 10 идущих подряд букв A.

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

В ответе запишите одно целое число.

Для выполнения задания используйте файл: 24_A1000.txt

Файлы к задаче
Подсказка

Рассмотрите каждую максимальную серию подряд идущих букв A отдельно.

Если длина такой серии равна L, то из неё можно получить L // 10 непересекающихся фрагментов по 10 букв A.

Решение
s = open('24_A1000.txt').read().strip()

ans = 0
current = 0

for ch in s:
    if ch == 'A':
        current += 1
    else:
        ans += current // 10
        current = 0

ans += current // 10

print(ans)
ЕГЭ
Задание 24
ЕГЭ №24
Циклы
Подстроки
2 - простая
Авторская задача