HomeVolumesContestsSectionsForumsUsersPrintHelpAbout

Sections > Unsorted > problem:


Binary sharing

Section problems

• Sluhi
• Bank
• Башенки
• Pour Lise
• No-task
• Bengal fairs
• Benjamin and word chain
• Coasts and island
• Binary sharing
• Huge ladder
• Борода Черномора (10 баллов)
• Borsch
• Bobiks house
• Symbol magic
• Bus
• В тигропитомнике
• Chapaev's horse

Feedback

If you notice incorrect translations in Contester, please let author know.

Time limit 2000/4000/4000/4000 ms. Memory limit 65000/65000/65000/65000 Kb.

raspil

Описанный ниже алгоритм абсолютно бесполезен...

1. Взять Исходное Бревно и распилить пополам. Две его части бросить, образовав кучу.
2. Взять одно случайное бревно из кучи, распилить пополам, обе части бросить обратно в кучу.
3. Пока не сломается пила, повторять п. 2.

Пила сломалась после N распилов. Самое короткое из оказавшихся после этого в куче брёвен имело длину А см, а самое длинное - В см. Разработайте программу, которая по значениям N, А и В определяет минимальную возможную длину Исходного Бревна.

Входные данные. Натуральные числа N, A, B в одной строке через пробел.

Выходные данные. Одно натуральное число - минимальная длина Исходного Бревна в см. Гаранитруется, что она не превышает миллион.

Пример. Предположим, Исходное Бревно имело длину 640 см. Его распилили пополам, кинули части в кучу. Затем из кучи вынули бревно длиной 320 см, распополамили, кинули половинки в кучу. Далее произвели ещё 5 распилов, пилили брёвна длиной 160, 320, 80, 40, 160. Входные данные, основанные на этой ситуации, будут такими:
7 20 160
Но при таких данных программа должна вывести не 640, а 320: за 7 распилов набор брёвен длиной от 20 до 160 см можно получить и из такого бревна. А вот если бы распилов было 9, программа вывела бы 640.

Для отправки решений необходимо выполнить вход.

www.contester.ru