Ctrl K

Разрез на равные по XOR половины

Средняя
Дан массив натуральных чисел values. Выберем три индекса i < j ≤ k и разрежем отрезок values[i..k] перед позицией j на две непустые части: - левая: values[i] ^ ... ^ values[j - 1] - правая: values[j] ^ ... ^ values[k] Здесь ^ — побитовое исключающее ИЛИ (XOR). Верните количество троек (i, j, k), для которых XOR левой части равен XOR правой.
Пример 1
values=[4, 4] → 1

Единственная тройка (0, 1, 1): слева [4], справа [4], XOR обеих частей равен 4.

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

1 ^ 2 ^ 3 = 0, поэтому любой разрез отрезка [0, 2] годится: (0, 1, 2) и (0, 2, 2). Ответ 2.

Пример 3
values=[6, 9, 15, 6, 6] → 9
Ограничения
  • 1 ≤ len(values) ≤ 300
  • 1 ≤ values[i] ≤ 10⁸
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОтрезок с суммой, кратной делителю СредняяВосемь фонарей через много ночей СредняяПалиндром после пары правок СредняяОтрезки с k нечётными СредняяМеньше всего прямых через точки Средняя
загружаем Python…
Вход
values=[4, 4]
Ожидается
1

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