По условию N ≤ 12, поэтому двоичная запись N содержит не более четырёх разрядов.
Для чётного N алгоритм дописывает слева 10. Поэтому результат имеет не более шести двоичных разрядов.
Для нечётного N слева дописывается 1, а справа — 01. Такая запись может содержать семь разрядов. Значит, для максимального R выгоднее искать ответ именно в нечётной ветке.
Результат в этой ветке имеет вид:
1 | N | 01
Чтобы получить максимальный результат, нужно взять максимально возможное N. Сначала проверяем N = 12:
12 = 1100₂.
Формально запись 1 | 1100 | 01 дала бы 113, но число 12 чётное. Поэтому нечётную ветку к нему применять нельзя. На самом деле для N = 12 используется чётная ветка:
10 | 1100 = 101100₂ = 44.
Следующее число — 11. Оно нечётное, поэтому для него нужная ветка разрешена:
11 = 1011₂
1 | 1011 | 01 = 1101101₂ = 109.
Число 12 больше, но не подходит нечётной ветке. Все числа меньше 11 дадут меньшую середину и, следовательно, меньший результат.
Ответ: 109.