1231: Калькулятор

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 10,00 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem types
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

В якості домашнього завдання з інформатики учням запропоновано розробити спеціальний калькулятор, який влаштований таким чином. Спочатку користувач вводить ціле додатне число 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~, які показують кількість проведених на калькуляторі операцій різного типу, визначає мінімальне число, яке може бути отримано в результаті роботи калькулятора.

Формат вихідних даних

У стандартному потоці міститься чотири цілих числа: ~n, a, b, c~ ~(1 \le n \le 10^{18}, 0 \le a, b, c \le 60)~. Числа задані на одному рядку, сусідні числа розділені одним пропуском.

Формат вихідних даних

У стандартний потік вивести результат - мінімальне число, яке може бути отримано в результаті роботи калькулятора.

Приклад вхідних даних

72 2 1 1

Приклад вихідних даних

4

Пояснення

У прикладі користувачеві необхідно оптимально діяти в такий спосіб: натиснути на кнопку ~C~ і отримати число 36, потім натиснути на кнопку ~A~ і отримати число 18, потім натиснути на кнопку ~B~ і отримати число 8, потім другий раз натиснути на кнопку ~A~ і отримати число 4.


Коментарі

Please read the guidelines before commenting.


Ще немає коментарів.