Решение задачи "Две кнопки" с Codeforces

Без пояснения   Просмотров: 29


Вася нашел странное устройство. На передней панели устройства расположен дисплей, отображающий некоторое целое положительное число, а также красная и синяя кнопки. При нажатии на красную кнопку число на дисплее увеличивается в два раза. При нажатии на синюю кнопку число на дисплее уменьшается на единицу. Если в какой-то момент число перестает быть положительным, устройство ломается. Дисплей может отображать сколь угодно большие числа. Изначально на дисплее отображается число n.

Вася хочет получить на дисплее число m. Какое минимальное количество нажатий ему придется совершить?

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m, k = 0;
    cin >> n >> m;

    while(m > n){
        if(m % 2)
            ++m;
        else{
            m/=2;
        }
        ++k;
    }
    cout << abs(m - n) + k;
    return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться