5 номер. Преобразование записей чисел
Алгоритм обработки числа
(М. Попков) На Долине Четырёх Огней существовал обряд очищения чисел. Каждое натуральное число N переводилось в четверичную запись и обрабатывалось Огненным Алгоритмом. Если сумма цифр в четверичной записи была чётной, то к этой записи справа добавлялось 3, а затем два левых разряда заменялись на 21. Если сумма цифр в четверичной записи была нечётной, то к этой записи справа дописывалось 1, а затем два левых разряда заменялись на 32. Полученная запись является четверичной записью числа R. Только те числа R, которые превышали 2400 в десятичной системе, считались очищенными и достойными дальнейшего использования. Совет Долины объявил: “Найдите минимальное число R, которое может пройти ритуал”.
Какое минимальное значение R в десятичной системе счисления подходит для ритуала?
Подсказка
Сначала выполните все шаги для одного N, сохраняя строку после каждого изменения. Затем уточните, что требуется выбрать: N, R или количество значений.
Решение
Искомая величина: Какое минимальное значение R в десятичной системе счисления подходит для ритуала?
Разделите решение на два действия: для одного входного числа точно воспроизведите алгоритм, затем отберите результаты по условию задачи. Храните запись числа строкой; основание используемой системы счисления — 10.
Суммируйте цифры записи, а не само число. После преобразования запись может измениться: повторный подсчёт выполняйте по новой строке, если именно она названа в условии.
Дописывание справа реализуется как s + suffix, слева — как prefix + s. Добавляйте ровно указанную последовательность символов, включая нули. Числовое сложение вместо соединения строк здесь меняет алгоритм.
При замене разрядов сначала выделите изменяемый фрагмент исходной строки и сохраните остальную часть. Если заменяются одновременно все нули и единицы, стройте новую строку за один проход: две последовательные замены затронут уже изменённые символы.
Нужно минимизировать выходное R. Собирайте подходящие выходные значения и выбирайте минимум: первое подходящее N не обязательно даёт наименьший R, поскольку разные ветви алгоритма могут менять порядок результатов.
Строгое «больше» означает >, а «не меньше» — >=; аналогично различайте верхние границы. Диапазон перебора определяйте из ограничений и изменения длины записи, а не произвольной константой. Пример из условия помогает проверить отдельный проход алгоритма.
Ответ: 2403.