with open('2430.txt', 'r') as file:
data = file.readline()
max_len = 0
n = len(data)
for left in range(n):
for right in range(left + max_len, n + 1):
substr = data[left:right]
if substr.count('Y') > 80:
break
if substr.count('Y') == 80 and substr.count('2025') >= 90:
max_len = max(max_len, len(substr))
print(max_len)
# === ОПТИМИЗИРОВАННЫЙ КОД (дек + два указателя) === #
from collections import deque
with open('2430.txt') as file:
data = file.readline()
n = len(data)
max_len = 0
left = 0
count_Y = 0
count_2025 = 0
window = deque() # храним индексы начала найденных подстрок'2025'
for right in range(n):
# Добавляем текущий символ
if data[right] == 'Y':
count_Y += 1
# Проверяем, начинается ли '2025' на позиции right - 3
if right >= 3 and data[right-3:right+1] == '2025':
window.append(right - 3)
count_2025 += 1
# Сдвигаем левый указатель, если Y > 80
while count_Y > 80:
if data[left] == 'Y':
count_Y -= 1
# Если удаляемая позиция была началом '2025', убираем её
if window and window[0] == left:
window.popleft()
count_2025 -= 1
left += 1
# Проверяем условие: ровно 80 Y и хотя бы 90 '2025'
if count_Y == 80 and count_2025 >= 90:
max_len = max(max_len, right - left + 1)
print(max_len)
# === РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ === #
import re
with open('2430.txt') as f:
s = f.readline().strip()
K = 80
letter = 'Y'
need = 90
sub = '2025'
# позиции всех Y
pos = [m.start() for m in re.finditer(letter, s)]
max_len = 0
for i in range(len(pos) - K + 1):
left = pos[i]
right = pos[i + K - 1]
# расширяем влево
l = left
while l > 0 and s[l - 1] != letter:
l -= 1
# расширяем вправо
r = right
while r + 1 < len(s) and s[r + 1] != letter:
r += 1
substr = s[l:r + 1]
if substr.count(sub) >= need:
max_len = max(max_len, len(substr))
print(max_len)