Задание 24. Информатика. ЕГЭ. Шастин. 18.12.2024

Просмотры: 326
Изменено: 1 февраля 2025

(Л. Шастин) Текстовый файл состоит из символов A, B, C, D, E, F, G и H. Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых последовательность расстояний между ближайшими соседними гласными буквами образует арифметическую прогрессию.

Например, в строке BBDABCADEFBACDFAB подходит подстрока BCADEFBACDFAB, последовательность расстояний между ближайшими соседними гласными буквами в ней образована с шагом \(1\) и выглядит так: \(2, \, 3, \, 4.\)

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

Файл с данными

Решение:

Python


base = ''

s = open(base + '24.txt').readline().strip()

mx = 0

ls = len(s)
vow = 'AE'
p1 = 0
b =  0
while s[p1] not in vow:
    p1 += 1
p2 = p1 + 1
while s[p2] not in vow:
    p2 += 1
p3 = p2 + 1
while s[p3] not in vow:
    p3 += 1
d = (p3 - p2) - (p2 - p1)
e = p3
while s[e+1] not in vow:
    e += 1
mx = e - b

while p3 < ls:
    p1, p2, p3 = p2, p3, p3 + 1    
    while p3 < ls and s[p3] not in vow:
        p3 += 1
    if p3 < ls:
        if (p3 - p2) - (p2 - p1) != d:
            mx = max(mx, p3 - b)
            d = (p3 - p2) - (p2 - p1)
            b = p1
            while b and s[b-1] not in vow:
                b -= 1
    if p3 == ls:
        mx = max(mx, p3 - b)

print(mx)

Ответ: \(107831\)