Ctrl K

Перевороты битов ради нужного OR

Средняя
Даны три положительных числа x, y и target. За одну операцию можно перевернуть один бит в двоичной записи x или y: превратить 0 в 1 или 1 в 0. Само число target менять нельзя. Верните наименьшее число операций, после которого побитовое ИЛИ x | y станет равно target.
Пример 1
x=3, y=12, target=9 → 2

x = 0011, y = 1100, target = 1001. Сейчас x | y = 1111. Нужно погасить бит 1 у x и бит 2 у y — всего 2 переворота.

Пример 2
x=6, y=6, target=1 → 5

Биты 1 и 2 включены в обоих числах — это 4 переворота, плюс ещё один, чтобы зажечь бит 0: всего 5.

Пример 3
x=5, y=2, target=7 → 0
Ограничения
  • 1 ≤ x, y, target ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДеление без деления СредняяВсе наборы добавок СредняяКоды с зеркальным отражением СредняяВсе разные наборы карт СредняяЛишний среди троек Средняя
загружаем Python…
Вход
x=3, y=12, target=9
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 78 тестов на сервере, включая скрытые.