start и target. За один ход можно взять любой бит двоичной записи start, равный 1, и сделать его нулём. Превращать 0 в 1 нельзя.
Верните наименьшее число ходов, после которых start станет равно target, или -1, если этого добиться невозможно.start=29, target=9 → 2
29 = 11101₂, 9 = 01001₂. Гасим две единицы (в разрядах 4 и 2) — получается 9.
start=6, target=5 → -1
6 = 110₂, 5 = 101₂. В младшем разряде у 5 стоит единица, а у 6 — ноль; включать биты нельзя, ответ -1.
start=40, target=40 → 0
start=29, target=9
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 71 тест на сервере, включая скрытые.