| Codeforces Round 1072 (Div. 3) |
|---|
| Закончено |
У Андрея есть огромная куча из $$$n$$$ яблок. Он умеет делить кучу на две другие: если в куче $$$x$$$ яблок, получатся кучи с $$$\lfloor \frac{x}{2} \rfloor$$$$$$^{\text{∗}}$$$ и $$$\lceil \frac{x}{2} \rceil$$$$$$^{\text{†}}$$$ яблоками. Такое разделение Андрей делает за $$$1$$$ минуту.
Андрей хочет съесть $$$k$$$ яблок, но отсчитывать их желания нет совсем. Именно поэтому он хочет получить кучу, в которой будет ровно $$$k$$$ яблок. Определите, возможно ли это сделать операциями разделения куч. Если это возможно, найдите минимальное возможное время, за которое Андрей сможет получить кучу из ровно $$$k$$$ яблок.
$$$^{\text{∗}}$$$$$$\lfloor \frac{x}{2} \rfloor$$$ — наибольшее целое число $$$\le \frac{x}{2}$$$.
$$$^{\text{†}}$$$$$$\lceil \frac{x}{2} \rceil$$$ — наименьшее целое число $$$\ge \frac{x}{2}$$$.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ $$$(1 \le t \le 10^4)$$$ — количество наборов входных данных. Далее следуют описания наборов входных данных.
В единственной строке каждого набора даются два целых числа $$$n$$$ и $$$k$$$ — количество яблок в огромной куче и количество яблок, которое Андрей хочет получить в одной куче $$$(1 \le n, k \le 10^9)$$$.
Для каждого набора данных выведите $$$-1$$$, если получить кучу из ровно $$$k$$$ яблок невозможно. В противном случае выведите минимальное возможное время, за которое получить такую кучу возможно.
410 311 521 41000000000 1
21-129
В первом примере при первом разделении получатся две кучи из $$$5$$$ яблок. Если поделить одну из них, то получатся кучи с $$$2$$$ и $$$3$$$ яблоками, поэтому ответ $$$2$$$.
Во втором примере, если разделить кучу на две, то получатся кучи с $$$5$$$ и $$$6$$$ яблоками, поэтому ответ $$$1$$$.
В третьем примере возможно получить кучи лишь с $$$1$$$, $$$2$$$, $$$3$$$, $$$5$$$, $$$6$$$, $$$10$$$, $$$11$$$ или $$$21$$$ яблоками, поэтому ответ $$$-1$$$.
| Название |
|---|


