Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 12. Информатика. ЕГЭ. Поляков-8302
- Просмотры: 1737
- Изменено: 28 сентября 2025
(Р. Косов) На ленте исполнителя МТ в соседних ячейках записана последовательность из \(1500\) символов, включающая только нули и единицы. Ячейки справа и слева от последовательности заполнены пустыми символами «\(\lambda\)». В начальный момент времени головка расположена в ближайшей ячейке справа от последовательности.
Программа работы исполнителя:
| \(\lambda\) | \(0\) | \(1\) | |
| \(q_0\) | \(\lambda , \, L, \, q_1\) | ||
| \(q_1\) | \(\lambda , \, S, \, q_q\) | \(0, \, L, \, q_1\) | \(1, \, L, \, q_1\) |
| \(q_2\) | \(\lambda , \, S, \, q_1\) | \(2, \, L, \, q_2\) | \(1, \, S, \, q_2\) |
Команды движения каретки: \(L\) – влево, \(R\) – вправо, \(N\) — нет перемещения, \(S\) – стоп. Определите максимально возможную сумму цифр, которую можно получить на ленте после выполнения алгоритма.
Решение:
Если все непустые символы строки нули, то сумма цифр конечной строки будет нулевая. Поставим самым крайним правым символом единицу. Тогда на выходе получим строку, сумма цифр которой \(2999.\) Это — максимальная сумма, которую можно получить в результате работы программы.
Программный тест
Python
mt = {'l': {'q0': 'l,L,q1', 'q1': 'l,S,q1', 'q2': 'l,S,q2'},
'0': {'q1': '0,L,q1', 'q2': '2,L,q2'},
'1': {'q1': '1,L,q2', 'q2': '2,S,q2'},
}
step = {'R': -1, 'L': 1, 'S': 0, 'N': 0}
state = 'q0'
s = list('l' + '0' * 1499 + '1' + 'l')
p = len(s) - 1
s[p], m, state = mt[s[p]][state].split(',')
while m != 'S':
p -= step[m]
s[p], m, state = mt[s[p]][state].split(',')
print(f'Сумма цифр в конечной последовательности: {sum(int(x) for x in s if x != "l")}')
Ответ: \(2999\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


