Олимпиады по программированию

olympiads.ru

Московская олимпиада
Новости
Ссылки на странички разных лет
2006/07 учебный год
2005/06 учебный год
2004/05 учебный год
2003/04 учебный год
2002/03 учебный год
Московская городская олимпиада по программированию 2002/03
Доска объявлений олимпиады
Материалы олимпиады
Призеры олимпиады
Полная таблица результатов
Заочный тур
Информация о заочном туре
Задачи заочного тура
Об использовании тестирующей системы
Результаты заочного тура
Несколько советов
Задать вопрос оргкомитету
Заочный тур Московской городской олимпиады школьников по программированию

Задача D. Забавная игра

Имя входного файла: d.in
Имя выходного файла: d.out
Максимальное время работы на одном тесте: 2 секунды
Максимальный объем используемой памяти: 32 мегабайта

Легендарный учитель математики Юрий Петрович придумал забавную игру с числами. А именно, взяв произвольное целое число, он переводит его в двоичную систему счисления, получая некоторую последовательность из нулей и единиц, начинающуюся с единицы. (Например, десятичное число 1910 = 1*24+0*23+0*22+1*21+1*20 в двоичной системе запишется как 100112.) Затем учитель начинает сдвигать цифры полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо), выписывая образующиеся при этом последовательности из нулей и единиц в столбик - он подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. И, наконец, Юрий Петрович отыскивает максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 19 список последовательностей будет таким:

10011
11001
11100
01110
00111
10011
...

и результатом игры, следовательно, окажется число 1*24+1*23+1*22+0*21+0*20 = 28.

Поскольку придуманная игра с числами все больше занимает воображение учителя, отвлекая тем самым его от работы с ну очень одаренными школьниками, Вас просят написать программу, которая бы помогла Юрию Петровичу получать результат игры без утомительных ручных вычислений.

Формат входных данных

Входной файл содержит одно целое число N (0≤N≤32767).

Формат выходных данных

Ваша программа должна вывести в выходной файл одно целое число, равное результату игры.

Пример

d.in d.out
19
28