Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Чат
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Калькулятор

(Время: 1 сек. Память: 16 Мб Сложность: 38%)

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

Сначала пользователь вводит целое положительное число n, которое выводится на экран. Затем пользователь может нажимать на три кнопки: A, B и C.

При нажатии на кнопку A число, которое выведено на экран, делится на 2. Если число на экране нечетное, то остаток отбрасывается. Например, результат этой операции для числа 80 равен 40, а для числа 239 равен 119.

При нажатии на кнопку B к числу, которое выведено на экран, прибавляется 1, и результат делится на 2. Остаток от деления отбрасывается. Например, результат операции для числа 80 равен 40, а для числа 239 равен 120.

При нажатии на кнопку C происходит следующее. Если число, которое выведено на экран, положительное, то из него вычитается 1 и результат делится на 2, остаток отбрасывается. Если же перед нажатием на кнопку C на экран было выведено число 0, то оно остается неизменным. Например, результат операции для числа 80 равен 39, а для числа 239 равен 119.

Пользователь ввел число n и собирается нажать на кнопки операций в некотором порядке. В частности, он планирует нажать на кнопку A суммарно a раз, на кнопку B – b раз и на кнопку C – c раз. Его заинтересовал вопрос, какое минимальное число может получиться в результате выполнения описанных операций.

Требуется написать программу, которая по введенному числу n и числам a, b и c, показывающим количество произведенных на калькуляторе операций разного типа, определяет минимальное число, которое может получиться в результате работы калькулятора

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

Входной файл INPUT.TXT содержит четыре целых числа: n, a, b и c (1 ≤ n ≤ 1018, 0 ≤ a, b, c ≤ 60). Числа заданы на одной строке, соседние числа разделены одним пробелом.

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

В выходной файл OUTPUT.TXT выведите и одно число – минимальное число, которое может получиться у пользователя в результате работы калькулятора.

Пример

INPUT.TXTOUTPUT.TXT
172 2 1 14

Пояснение к примеру

В примере пользователю необходимо оптимально действовать следующим образом: нажать на кнопку C и получить число 35, затем нажать на кнопку A и получить число 17, затем нажать на кнопку B и получить число 9, затем второй раз нажать на кнопку A и получить число 4.


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2006 / 2007
 2007 / 2008
 2008 / 2009
 2009 / 2010
 2010 / 2011
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 A. Кампус
 B. Калькулятор
 C. Размещение данных
 D. Полезные ископаемые
 E. Автоматизированное управление доставкой
 F. Большой линейный коллайдер
 G. Силовые поля
 H. Повышение квалификации

Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483