Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 24. Информатика. ЕГЭ. Поляков-6837
- Просмотры: 246
- Изменено: 21 января 2026
(А. Богданов) Передатчик непрерывно повторяющуюся последовательность XYZ, вставляя полезные сообщения, как только они появляются. Повторяющаяся последовательность XYZ может быть прервана на любой букве вставкой полезного сообщения. После передачи полезного сообщения продолжается передача XYZ со следующего (ещё не переданного) символа. Известно, что первый и последний символы полезных сообщений не мешают их обнаружению. Длина фрагмента повторяющейся последовательности XYZ – не менее трёх символов. Переданные данные сохранены в текстовом файле, который состоит не более чем из \(10^6\) символов – заглавных латинских букв и цифр. Найдите максимальную длину полезного сообщения.
Пример: XYZXYZXYUSEFULLMESSAGEZXYZXYZXYAVERYUSEFULLMESSAGEZXYZXYZXYZ. Наибольшую длину \((19)\) имеет полезное сообщение AVERYUSEFULLMESSAGE.
Решение:
Python
s = open('6837.txt').readline().strip()
# s = 'XYZXYZXYUSEFULLMESSAGEZXYZXYZXYAVERYUSEFULLMESSAGEZXYZXYZXYZ'
ml = 0
u = False
xyz = 'XYZ'
pn = 0
t = 0
for i in range(len(s)):
if not u:
if s[i] == xyz[pn]:
pn = (pn + 1) % 3
else:
u = True
t = 1
else:
if s[i] == xyz[pn] and s[i + 1] == xyz[(pn + 1) % 3] \
and s[i + 2] == xyz[(pn + 2) % 3]:
u = False
ml = max(ml, t)
t = 0
pn = (pn + 1) % 3
else:
t += 1
if u:
ml = max(ml, t)
print(ml)
Ответ: \(1339\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


