Задача 7I. Дерево отрезков

Автор:Завгороднев А.А.   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

У Максима есть массив a размера n. Назовём подмассив от i до j правильным, если его размер (j − i + 1) равен степени двойки 2k для некоторого k. Максим выбирает какой-то правильный подмассив, на котором он строит дерево отрезков.

Дерево отрезков - это структура данных, которая представляет собой иерархическое дерево.

После этого Максим нумерует вершины дерева следующим образом: У корня будет номер 1, далее у его левого сына номер 2, а у правого номер 3. После этого он нумерует детей вершины номер 2, а потом вершины номер 3. И так далее он проводит эту операцию последовательно по возрастанию номеров вершин.

И уже после нумерации Максим находит его любимое число, характеризующее подмассив - сумму значений в узлах с нечетным номером. Это число Максим называет характеристикой подмассива.

Так как Максим очень любит эти числа, он просит вас найти сумму характеристик всех возможных правильных подмассивов массива a. Так как ответ может быть слишком большим, выведите его по модулю 109 + 7.

Формат входных данных

В первой строке находится одно целое число n - размер массива. (n ≤ 106).

Во второй строке располагается n чисел - значения массива a.

Формат выходных данных

Выведите одно целое число - сумму характеристик всех возможных правильных подмассивов массива a по модулю 109 + 7.


Пояснение к первому примеру:

Всего существует 8 правильных подмассивов:

Итого сумма всех характеристик: (1 + 2 + 3 + 4) + ((3 + 2) + (5 + 3) + (7 + 4)) + (10 + 7 + 2 + 4) = 57.

Дерево отрезков с номерами узлов.

Примеры тестов

Стандартный вход Стандартный выход
1
4
1 2 3 4
57
2
3
3 1 330
1000
3
1
41
41

0.079s 0.008s 15