Ctrl K

Две половины: OR, затем XOR

Сложная
Дан массив values и число half. Выберите из массива ровно 2 · half элементов, сохранив их порядок. Первые half выбранных элементов образуют левую половину, остальные half — правую. Ценность выбора — это (OR левой половины) XOR (OR правой половины), где OR и XOR — побитовые операции. Верните наибольшую возможную ценность.
Пример 1
values=[3, 5, 6], half=1 → 6

Выбираем 3 и 5: 3 XOR 5 = 6. Пары (3, 6) и (5, 6) дают 5 и 3.

Пример 2
values=[1, 2, 4, 8, 3], half=2 → 15

Выбираем 1, 2, 4, 8: (1 OR 2) XOR (4 OR 8) = 3 XOR 12 = 15.

Ограничения
  • 2 ≤ len(values) ≤ 400
  • 1 ≤ values[i] < 2⁷
  • 1 ≤ half ≤ len(values) / 2
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКак рассчитаться за меньше переводов СложнаяДве группы с одинаковым средним СложнаяСклейка фрагментов СложнаяЦепочки с квадратными суммами СложнаяСамая маленькая команда со всеми навыками Сложная
загружаем Python…
Вход
values=[3, 5, 6], half=1
Ожидается
6

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