1231: Калькулятор -> Тренування для ТЮІ-2017


Submit solution


Points:10
Time limit:1.0s
Memory limit:250M
Author:

Problem types

В якості домашнього завдання з інформатики учням запропоновано розробити спеціальний калькулятор, який влаштований таким чином. Спочатку користувач вводить ціле додатне число 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 ≤ n ≤ 1018, 0 ≤ a, b, c ≤ 60). Числа задані на одному рядку, сусідні числа розділені одним пропуском.

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

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

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

72 2 1 1

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

4

Пояснення

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


Comments


  • 0
    StanislavKrolevets
     commented on Nov. 1, 2017

    Тест № 10 невірний


    • 0
      zvit
       commented on Nov. 2, 2017 edited

      це треба ще обгрунтувати... тест 10: 2017 0 4 3 - відповідь ви уже знаєте


      • 0
        StanislavKrolevets
         commented on Nov. 2, 2017

        2017 а=0 b=4 c=3 B: 2017//2=1008 a=0 b=3 c=3 B: 1008//2=504 a=0 b=2 c=3 B: 504//2=252 a=0 b=1 c=3 B: 252//2=126 a=0 b=0 c=3 C: (126-1)//2=62 a=0 b=0 c=2 C: (62-1)//2=30 a=0 b=0 c=1 C: (30-1)//2=14 a=0 b=0 c=0 Відповідь: 14


        • 0
          zvit
           commented on Nov. 2, 2017 edited

          2017 а=0 b=4 c=3 B: (2017+1)//2=1009 a=0 b=3 c=3 B: (1009+1)//2=505 a=0 b=2 c=3 B: (505+1)//2=253 a=0 b=1 c=3 B: (253+1)//2=127 a=0 b=0 c=3 C: (127-1)//2=63 a=0 b=0 c=2 C: (63-1)//2=31 a=0 b=0 c=1 C: (31-1)//2=15 a=0 b=0 c=0 Відповідь: 15


          • 0
            StanislavKrolevets
             commented on Nov. 2, 2017

            Спутав кнопки А і В. Ех...


  • 0
    StanislavKrolevets
     commented on Nov. 1, 2017

    При натисканні перший раз на С отримаємо (72-1)//2=35. Хіба не так?