Ctrl K

Общая маска и лучшее произведение

Средняя
Даны неотрицательные целые числа first, second и bits. Выберите одну маску x, 0 ≤ x < 2^bits, и наложите её на оба числа через XOR. Сделайте так, чтобы произведение (first XOR x) · (second XOR x) было как можно больше. Ответ может быть очень большим — верните его остаток от деления на 10⁹ + 7. Сравнивать варианты нужно по настоящему произведению, а не по остатку.
Пример 1
first=9, second=2, bits=3 → 84

Маска 3: 9 XOR 3 = 10, 2 XOR 3 = 1, произведение 10. Маска 5: 9 XOR 5 = 12, 2 XOR 5 = 7, произведение 84 — это максимум.

Пример 2
first=5, second=5, bits=0 → 25

При bits = 0 единственная маска — 0, ответ 5 · 5 = 25.

Пример 3
first=0, second=0, bits=2 → 9

Маска 3 превращает оба нуля в 3: 3 · 3 = 9.

Ограничения
  • 0 ≤ first, second < 2⁵⁰
  • 0 ≤ bits ≤ 50
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДеление без деления СредняяКоды с зеркальным отражением СредняяСложение без плюса СредняяСпуск до единицы СредняяГонка из общей кучки чисел Средняя
загружаем Python…
Вход
first=9, second=2, bits=3
Ожидается
84

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