Ctrl K

Биты, набравшие кворум

Лёгкая
Дан массив неотрицательных чисел values и число quorum. Устроим голосование по битам: каждое число «голосует» за те позиции, где в его двоичной записи стоит единица. Бит попадает в ответ, если за него проголосовали хотя бы quorum чисел. Верните число, в двоичной записи которого единицы стоят ровно на таких позициях. При quorum = 1 это обычное побитовое ИЛИ всех чисел, а при quorum = len(values) — побитовое И.
Пример 1
values=[5, 6, 3, 4], quorum=2 → 7

В двоичном виде это 101, 110, 011, 100. Бит 0 стоит у 5 и 3 (два голоса), бит 1 — у 6 и 3 (два), бит 2 — у 5, 6 и 4 (три). Все биты набрали кворум: 111 = 7.

Пример 2
values=[5, 6, 3, 4], quorum=3 → 4

Три голоса набрал только бит 2, поэтому ответ 100 = 4.

Пример 3
values=[9, 1, 0], quorum=3 → 0
Ограничения
  • 1 ≤ len(values) ≤ 50
  • 0 ≤ values[i] < 2³¹
  • 1 ≤ quorum ≤ len(values)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧисло без пары ЛёгкаяПотерянный билет ЛёгкаяДвойная бирка и пропавшая ЛёгкаяЗеркало и негатив ЛёгкаяКратно пяти на каждом шаге Лёгкая
загружаем Python…
Вход
values=[5, 6, 3, 4], quorum=2
Ожидается
7

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