Ctrl K

Различные ИЛИ отрезков

Средняя
Дан массив неотрицательных целых чисел values. Для каждого непустого отрезка — подряд идущих элементов — посчитайте побитовое ИЛИ (|) всех его элементов. ИЛИ отрезка из одного элемента — это сам элемент. Сколько различных значений получится? Верните их количество.
Пример 1
values=[4, 1, 4] → 3

Отрезки дают значения 4, 1, 4, 4 | 1 = 5, 1 | 4 = 5 и 4 | 1 | 4 = 5. Различных значений три: 1, 4, 5.

Пример 2
values=[3, 3, 3] → 1

Любой отрезок даёт 3.

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

Все 10 отрезков дают разные значения: 1, 2, 4, 8, 3, 6, 12, 7, 14, 15.

Ограничения
  • 1 ≤ len(values) ≤ 5 · 10⁴
  • 0 ≤ values[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКвадратная рамка из палочек СредняяРассадка с делимостью СредняяСамая дешёвая корзина с наборами СредняяГруппы с равными суммами СредняяМеньше всего пешком до самокатов Средняя
загружаем Python…
Вход
values=[4, 1, 4]
Ожидается
3

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