Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
 

printРайонно-городские командные соревнования

print8. Угадай число

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Боб и его старший брат Альберт часто играют в игру "Угадай число". Сначала Боб загадывает число K в диапазоне от 1 до N. Потом Альберт называет числа, а Боб говорит, является названное число больше или меньше загаданного или Альберт назвал правильное число. Альберт для угадывания всегда использует следующую стратегию.
1 шаг. Альберт задает A=1 и B=N
2 шаг. Альберт вычисляет M – целую часть среднего арифметического чисел A и B
3 шаг. Альберт называет число M
4 шаг. Если Боб говорит "Меньше", то Альберт полагает A=M+1 и переходит к шагу 2
5 шаг. Если Боб говорит "Больше", то Альберт полагает B=M-1 и переходит к шагу 2
6 шаг. Если Боб говорит "Угадал", то игра заканчивается
Например, пусть N=9, а задуманное Бобом число K равно 6. Сначала A=1, B=9. Альберт называет число 5 и получает ответ "Меньше". Теперь A=6, B=9. Следующее число-попытка 7. Боб отвечает "Больше". Теперь A=6, B=6. Альберт называет 6 и получает ответ "Угадал".
Напишите программу, которая определяет, сколько чисел придется назвать Альберту, прежде чем он получит ответ "Угадал" от Боба.
В первой строке входного файла содержатся два целых числа N (1 ) и K (1\ ≤\ K\ ≤\ N), разделенных пробелом.
В выходной файл вывести одно целое число – количество названных Альбертом чисел до получения ответа Боба "Угадал".

Пример ввода

9 6

Вывод для примера

3
loading