Модуль: ЕГЭ-2022. Вопрос 27. Обработка последовательности чисел


Задача

8 /11


Сумма подотрезка

Теория Нажмите, чтобы прочитать/скрыть


Сумма подотрезка. Массив префиксных сумм


Задача
Дан неизменяемый массив длины n. Вычислить сумму элементов массива на подотрезке с l по r.


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

В информатике префиксной суммой последовательности чисел x0, x1, x2, … называется последовательность чисел y0, y1, y2, …, такая что:
y0 = x0
y1 = x0 + x1
y2 = x0 + x1+ x2

...

Идея решения заключается в том, чтобы сохранить в дополнительный массив сумму всех элементов префиксов последовательности. 
В элемент с индексом 1 - значение суммы элементов префикса длиной 1 (значение первого элемента массива). В элемент с индексом 2 - значение суммы элементов префикса длиной 2 (сумма первого и второго элементов массива) и т.д.

входное число 1 2 3 4 5 6 ...
префиксная сумма (prefix) 1 3 6 10 15 21 ...


Используя сформированный массив (prefix), можно легко вычислять сумму на отрезке [l; r]:  prefix[r] - prefix[l-1], где prefix[r] - сумма первых r элементов последовательности, prefix[l-1] - сумма первых l-1 элементов последовательности.

Задача

Дан неизменяемый массив длины n и q запросов типа “вычислить сумму подотрезка массива с l по r”. Выведите ответ на каждый запрос.

Входные данные
В первой строке дано число n – размер массива (\(1 <= n <= 10^5\)). Во второй строке дано n чисел – элементы массива. Числа по модулю не превосходят \(10^9\). В третьей строке дано число q – кол-во запросов (\(1 <= q <= 10^5\)). Далее дано q строк, в каждой из которых дано 2 числа: l и r (\(1 <= l <= r <= n\)).

Выходные данные
Выведите ответы на все запросы, каждый в отдельной строке.
 
Примеры
Входные данные Выходные данные
1 5
1 2 3 4 5
3
1 2
3 3
2 5
3
3
14

time 1500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w6410
Python123
Комментарий учителя