value. Его нужно превратить в 0, меняя по одному биту двоичной записи за шаг. Разрешены только два вида шагов:
- поменять младший бит (бит 0) — это можно всегда;
- поменять бит i (при i ≥ 1), но только если бит i - 1 равен 1, а все биты ниже него (i - 2, ..., 0) равны 0.
Верните наименьшее число шагов.value=2 → 3
10 → 11 (младший разряд можно менять всегда) → 01 (разряд 1 меняем, потому что разряд 0 равен 1) → 00. Три шага.
value=5 → 6
Кратчайший путь: 101 → 111 → 110 → 010 → 011 → 001 → 000, то есть 6 шагов.
value=0 → 0
value ≤ 10⁹value=2
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 71 тест на сервере, включая скрытые.