Решение
🔹 Шаг 1. Считываем строку из файла
s = open("24_29354.txt").read()
📌 Что происходит:
Имя файла в коде: 24_29354.txt.
🔹 Шаг 2. Подготавливаем переменные
l = 0
bc = 0
max_len = 0
📌 Назначение переменных:
l — левая граница текущего фрагмента (окна);
bc — количество пар B внутри текущего фрагмента;
max_len — максимальная длина фрагмента с ровно 190 парами.
🔹 Шаг 3. Двигаем правую границу окна
for r in range(len(s) - 1):
📌 Что происходит:
🔹 Шаг 4. Учитываем новую пару справа
if s[r] == 'B' and s[r + 1] == 'C':
bc += 1
📌 Объяснение:
при добавлении нового символа справа проверяем, образовалась ли новая пара B;
если да — увеличиваем счётчик bc.
🔹 Шаг 5. Сужаем окно при нарушении условия
while bc > 190:
if s[l] == 'B' and s[l + 1] == 'C':
bc -= 1
l += 1
📌 Что происходит:
пока пар B больше 190, окно слишком широкое;
сдвигаем левую границу l вправо и при необходимости уменьшаем bc.
🔹 Шаг 6. Обновляем максимальный ответ
if bc == 190:
max_len = max(max_len, r + 2 - l)
📌 Почему так:
🔹 Шаг 7. Вывод результата
print(max_len)
📌 Это и есть ответ задачи — максимальная длина фрагмента, в котором пара B встречается ровно 190 раз.