
14.03.2010, 14:01
|
 |
Новичок
|
|
Регистрация: 19.11.2009
Сообщения: 70
Репутация: 10
|
|
Помогите срочно!
Цитата:
Однажды отличник Вася оказался в незнакомом городе без денег. Через несколько недель ему должны были прислать чек на крупную сумму. А пока самой дорогой из его вещей была золотая цепочка для часов. Вася договорился с хозяйкой гостиницы, что до прихода денег будет в качестве залога давай ей каждый день одно звено. Васе, конечно, хотелось как можно меньше портить цепь. Вместо того, чтобы каждый день отпиливать по звену, он может в первый день дать хозяйке одно звено, во второй день забрать у нее это звено, отдав взамен короткую цепочку из двух звеньев. На третий день он может снова дать одно звено (у хозяйки будет всего три звена), на четвертый день обменять все три звена на цепочку из четырех звеньев и т.д. Все эти комбинации обязаны удовлетворять одному условию: каждый день у хозяйки гостиницы должно быть столько звеньев, сколько прошло дней с момента приезда Васи. Понятно, что, не нарушая договора с хозяйкой, цепь можно распилить разными способами. Ваша задача – определить, какое минимальное число звеньев должен распилить Вася, чтобы, выплачивая по звену в день, заплатить за все дни пребывания в гостинице. Пусть длина исходной цепочки Васи будет равна числу дней его ожидаемого пребывания в гостинице. Имейте в виду, что, распиливая, например, в цепочке из 9 звеньев 4-е звено, мы получаем три цепочки длиной 1, 3 и 5 звеньев.
Формат входных данных
В первой строке содержится число – количество дней, которые Вася должен провести в гостинице до прихода чека (0<N<10000).
Формат выходных данных
Выход должен содержать единственное число – минимальное количество звеньев, которое должен распилить Вася, чтобы расплатиться с хозяйкой за дни своего пребывания в гостинице.
Пример: при 23-х днях ответ - 2
|
Буду очень рад если напишите код!!!!
Последний раз редактировалось Zolman, 14.03.2010 в 14:03.
|