Как-то наконец
земляне нашли обитаемую планету, назвали ее ТТВ, и отправили вместе с кораблем
туда одного кролика. Кролику понравился климат новой планеты и через месяц он
произвел на свет еще одного кролика. Известно, что каждый месяц каждый кролик,
присутствующий на планете, производил на свет еще одного кролика. На планете
откуда-то взялся монстр, который в начале месяца съедал k кроликов, если только их становилось строго больше k. В задаче необходимо определить
количество кроликов, которое будет на планете через n месяцев после прибытия туда космического корабля с первым
кроликом.
Вход. Первая строка содержит количество месяцев n (0 ≤ n ≤ 100), вторая – число кроликов k (0 ≤ k ≤
10000), которое съедал монстр.
Выход. Определить количество кроликов, которое будет находиться
на планете ТТВ через n месяцев после
поселения туда первого кролика. Известно, что результат для любого теста всегда
не больше 2*109.
Пример
входа |
Пример
выхода |
5 10 |
12 |
РЕШЕНИЕ
циклы
Достаточно промоделировать процесс размножения и поедания
кроликов.
Читаем входные
данные. Установим изначально количество кроликов res равным 1.
scanf("%lld %lld",&n,&k);
res = 1;
Пока не пройдет n
месяцев моделируем жизнь на планете.
while(n--)
{
Поедание монстром кроликов.
if (res > k) res -= k;
Размножение кроликов.
res += res;
}
Выводим количество кроликов на планете через n месяцев
printf("%lld\n",res);