electicode
ГлавнаяКурсыРесурсыЗадачиНациональная олимпиадаСоревнованияТаблица лидеров
...

Массивы и Запросы

Ограничение времени: 1500msОграничение памяти: 256MB
Посмотреть разборВсе решения

Описание задачи

Дано целое число nnn и массив aaa из nnn целых чисел. Процесс построения массива bbb определяется следующим образом.

Изначально массив bbb пуст. Процесс выполняется в nnn последовательных раундах. На iii-ом раунде новый массив bbb определяется как конкатенация предыдущей версии массива bbb, элемента aia_iai​ и снова предыдущей версии массива .

Формально, на каждом iii-ом раунде массив bbb обновляется согласно правилу:

b:=b+[ai]+bb := b + [a_i] + bb:=b+[ai​]+b,

где символ «+++» обозначает конкатенацию массивов, а [ai][a_i][ai​] — это массив, состоящий из одного элемента aia_iai​.

После завершения построения массива bbb необходимо обработать qqq запросов. Каждый запрос определяется парой целых чисел (l,r)(l, r)(l,r). Для каждого запроса требуется найти сумму элементов массива bbb с позиции lll по позицию rrr включительно по модулю .

Формат ввода

В первой строке дано целое число nnn (1≤n≤60)(1 \le n \le 60)(1≤n≤60) — количество элементов в массиве aaa.

Во второй строке даны nnn целых числа a1,a2,…,ana_1, a_2, \ldots, a_na1​,a2​,…,an​ — элементы массива .

В третьей строке дано целое число qqq (1≤q≤2⋅105)(1 \le q \le 2 \cdot 10^5)(1≤q≤2⋅105) — количество запросов.

В следующих qqq строках даны пары целых чисел lll и rrr (1≤l≤r≤2n−1)(1 \le l \le r \le 2^n - 1)(1≤l≤r≤2n.

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

Для каждого запроса выведите одно число — сумму элементов массива bbb на отрезке [l,r][l, r][l,r] по модулю 109+710^9 + 7109+7. Выводите каждый ответ на отдельной строке.

Система оценки

ПодзадачаДополнительные ограниченияБаллыТребуемые подзадачи
000Пример000—
111Все элементы массива aia_ia равны друг другу

Примеры

Пример 1
Ввод
3
2 0 5
6
1 4
1 7
3 5
6 6
3 7
4 7
Вывод
9
13
9
0
11
9

© 2026 Electicode. All rights reserved.

bb
b
109+710^9 + 7
109+7
(0≤ai≤109)(0 \le a_i \le 10^9)
(0≤ai​≤109)
aaa
−
1)
i
​
888
—
222l=1l = 1l=1, r=2k−1r = 2^k - 1r=2k−1, где 1≤k≤n1 \le k \le n1≤k≤n171717—
333n≤20n \le 20n≤20232323—
444Для всех запросов l=rl = rl=r212121—
555—3131310,1,2,3,40,1,2,3,40,1,2,3,4