Присоединиться

11 класс·высокий уровень

Какое наибольшее количество двоек могло быть в строке A?

Условие

Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.А) заменить (v, w).Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.Б) нашлось (v).Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется. Дана программа для редактора:НАЧАЛО ПОКА НЕ нашлось (00) заменить (033, 1302) заменить (03, 120) заменить (023, 203) заменить (02, 20) КОНЕЦ ПОКАКОНЕЦ Известно, что в исходной строке A было ровно два нуля — на первом и на последнем месте, а после выполнения данной программы получилась строка B, содержащая 340 единиц, 849 двоек и 151 тройку. Какое наибольшее количество двоек могло быть в строке A?

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Приведём аналитическое решение.В алгоритме выполняются следующие замены:033 -> 1302 -> 1320 03 -> 120023 -> 203 -> 212002 -> 20 Можно заметить, что в изначальной строке не было единиц, так как замены их не меняют, и алгоритм, в случае наличия единиц, был бы не завершен. Поскольку в итоговой строке 340 единиц, они могли появиться только в результате работы алгоритма. Также алгоритм меняет тройки на

Осталось ещё 1 шаг

  1. Можно сделать вывод, что если добавились…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Выполнение алгоритмов для исполнителей»

Какое наибольшее количество двоек могло быть в строке A? — решение с объяснением | Lom Ai