Поле в игре «Речной бой» представляет собой полоску длины n клеток и шириной в одну клетку.
Где-то на поле расположен корабль из k клеток (k ≤ n). Какое наименьшее число выстрелов необходимо, чтобы гарантированно потопить корабль? После каждого выстрела сообщается его результат: «мимо», «ранен» или «убит».
Входные данные
Первая строка входных данных содержит целое число n (1 ≤ n ≤ 109).
Вторая строка входных данных содержит целое число k (1 ≤ k ≤ n).
Выходные данные
Выведите одно целое число — количество выстрелов.
Примечание:
Система оценки
Решения, правильно работающие при n ≤ 10, будут оцениваться в 40 баллов.
python
n = int(input())
k = int(input())
if k >= n:
print(k)
else:
x = (n - k) // 2
if x * 2 < n - k:
x += 1
print(x + 1)
Приведенный код решает задачу за O(1) времени и использует O(1) памяти.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет