Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Последняя вершина

Time limit:1 sec.
Memory limit: 262144 KByte

Как известно, для хранения дерева отрезков, построенного для входного массива размера N, достаточно создать массив размером не более N. Заметим, что величина N превышает количество вершин в дереве. Дело в том, что при хранении дерева в массиве дети вершины с номером i лежат в ячейках с номерами i и i + 1 (если массив нумеруется с единицы), и при этом некоторые ячейки могут быть не задействованы.

Для примера рассмотрим случай N = 3. Дерево отрезков будет выглядеть следующим образом:

Внутри вершин написаны отрезки, которые данная вершина представляет. Рядом с каждой вершиной подписан её номер – он же индекс для хранения вершины в массиве. Номер корня равен 1, номера остальных вершин вычисляются по вышеприведённым формулам. Как видим, при хранении дерева в массиве ячейки 4 и 5 не используются, а последней задействованной ячейкой будет ячейка с номером 7.

Вам дан размер входного массива N. Определите номер последней задействованной ячейки массива, в котором будет храниться дерево (он же – наибольший номер вершины).

Входные данные

Одно натуральное число N (1 ≤ N ≤ 108).

Выходные данные

Выведите одно натуральное число – номер последней задействованной ячейки массива для хранения дерева (оно же – максимальный номер вершины)

Примеры

Входные данные
3
Выходные данные
7
Входные данные
9
Выходные данные
31

Примечание

Можно заметить, что ответ зависит от того, как именно разбиваются отрезки нечётной длины при построении дерева. В данной задаче предполагается, что при разбиении отрезка нечётной длины левый подотрезок будет на единицу короче, чем правый (как и изображено на рисунке).

© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.