D2. Бесконечная последовательность (сложная версия)
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это сложная версия задачи. Отличие между версиями заключается в том, что в этой версии $$$l\le r$$$. Вы можете делать взломы только в том случае, если решили все версии этой задачи.

Вам дано положительное целое число $$$n$$$ и первые $$$n$$$ членов бесконечной двоичной последовательности $$$a$$$, которая определяется следующим образом:

  • Для $$$m>n$$$, $$$a_m = a_1 \oplus a_2 \oplus \ldots \oplus a_{\lfloor \frac{m}{2} \rfloor}$$$$$$^{\text{∗}}$$$.

Ваша задача состоит в том, чтобы вычислить сумму элементов в заданном диапазоне $$$[l, r]$$$: $$$a_l + a_{l + 1} + \ldots + a_r$$$.

$$$^{\text{∗}}$$$$$$\oplus$$$ обозначает операцию побитового исключающего ИЛИ.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит три целых числа $$$n$$$, $$$l$$$ и $$$r$$$ ($$$1 \le n \le 2 \cdot 10^5$$$, $$$1 \le l \leq r \le 10^{18}$$$).

Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$\color{red}{a_i \in \{0, 1\}}$$$) — первые $$$n$$$ членов последовательности $$$a$$$.

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.

Выходные данные

Для каждого набора входных данных выведите одно целое число — сумму элементов в заданном диапазоне.

Пример
Входные данные
9
1 1 1
1
2 3 10
1 0
3 5 25
1 1 1
1 234 567
0
5 1111 10000000000
1 0 1 0 1
1 1000000000000000000 1000000000000000000
1
10 41 87
0 1 1 1 1 1 1 1 0 0
12 65 69
1 0 0 0 0 1 0 1 0 1 1 0
13 46 54
0 1 0 1 1 1 1 1 1 0 1 1 1
Выходные данные
1
5
14
0
6666665925
0
32
3
2
Примечание

В первом наборе входных данных последовательность $$$a$$$ равна $$$$$$[\underline{\color{red}{1}}, 1, 1, 0, 0, 1, 1, 1, 1, 1, \ldots]$$$$$$ где $$$l = 1$$$, и $$$r = 1$$$. Сумма элементов в диапазоне $$$[1, 1]$$$ равна $$$$$$a_1 = 1.$$$$$$

Во втором наборе входных данных последовательность $$$a$$$ равна $$$$$$[\color{red}{1}, \color{red}{0}, \underline{1, 1, 1, 0, 0, 1, 1, 0}, \ldots]$$$$$$ где $$$l = 3$$$, и $$$r = 10$$$. Сумма элементов в диапазоне $$$[3, 10]$$$ равна $$$$$$a_3 + a_4 + \ldots + a_{10} = 1 + 1 + 1 + 0 + 0 + 1 + 1 + 0 = 5.$$$$$$