Лежал как-то раз Иванушка на печи да думу думал. И придумал: решил
холодильник купить. Сказано — сделано. Купил он холодильник и поставил
рядом с печкой. Да только шатается холодильник, ведь пол в избе неровный.
Иванушка не растерялся и решил что-нибудь подложить под одну из ножек
холодильника, чтобы тот принял устойчивое положение.
Недолго думая, решил Иванушка использовать для этого свёрнутую бумажку. Он взял бумажную полоску
шириной 1 сантиметр и длиной n сантиметров и теперь хочет свернуть её так, чтобы получился бумажный
квадрат со стороной 1 сантиметр и толщиной в n слоёв (если сделать больше или меньше, чем n слоёв,
холодильник по-прежнему будет шататься). Иванушка сгибает бумажную полоску по следующему алгоритму:
от левого края полоски отмеряет линейкой целое число сантиметров и загибает левый край направо
(в результате левый край полоски смещается на отмеренное число сантиметров). Затем он вновь отмеряет
некоторое количество сантиметров от нового левого края и опять загибает его направо, и так далее, пока
в результате не получится полоска длиной в 1 сантиметр.
Определите, какое наименьшее количество сгибов бумаги должен сделать Иванушка.
Исходные данные
В единственной строке записано целое число n
(1 ≤ n ≤ 109).
Результат
В первой строке выведите минимальное количество сгибов бумаги, необходимое для получения нужного
количества слоёв. Во второй строке выведите через пробел последовательность целых чисел —
длины в сантиметрах, которые Иванушка отмерял перед каждым из сгибов.
Пример
исходные данные | результат |
---|
12
| 4
5 3 2 1
|
Автор задачи: Станислав Васильев
Источник задачи: Открытое личное первенство УрГУ 2009 (28 февраля 2009)