Автор: | Завгороднев А.А. | Ограничение времени: | 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 |
|
|
2 |
|
|
3 |
|
|